Ist der "//"-Kommentar Bestandteil der C-Standards?



  • Hallo,

    in C kann man ja, statt dem " /* "-Kommentar auch " // " schreiben.

    Meine Frage ist: Sind die "//"-Kommentare Bestandteile des C-Standards?

    also: "erkennt" z.b. ein ANSI-C Compiler diese Kommentare als Kommentare?



  • Ja.



  • Seit C99.



  • Bashar schrieb:

    Seit C99.

    ok, das heißt dann im Umkehrschluss: C89-Compiler erkennen das also nicht.


  • Mod

    NULLLL schrieb:

    Bashar schrieb:

    Seit C99.

    ok, das heißt dann im Umkehrschluss: C89-Compiler erkennen das also nicht.

    Nein. Logikfehler. A -> B folgt nicht !A -> !B.

    Das ist auch keine reine Theorie, sondern tatsächlich kennt praktisch so ziemlich jeder C89-Compiler das "//".



  • SeppJ schrieb:

    Nein. Logikfehler. A -> B folgt nicht !B -> !A.

    Ähm, doch.
    Aus A -> B folgt lediglich nicht !A -> !B.


  • Mod

    volkard schrieb:

    SeppJ schrieb:

    Nein. Logikfehler. A -> B folgt nicht !B -> !A.

    Ähm, doch.
    Aus A -> B folgt lediglich nicht !A -> !B.

    Ich sollte mal besser korrekturlesen, wenn ich so etwas schreibe 😃 . Ihr wisst, was gemeint ist. !C99 -!-> !//



  • SeppJ schrieb:

    Das ist auch keine reine Theorie, sondern tatsächlich kennt praktisch so ziemlich jeder C89-Compiler das "//".

    Ach, wirklich? Dann wär ja ziemlich jeder C89-Compiler nicht standardkonform (man kann Programme schreiben, die ein anderes Ergebnis liefern, wenn // ein Kommentar ist). Ich vermute, du meinst, dass jeder C-Compiler, der auch C89 kann, eine Spracherweiterung versteht, die //-Kommentare umfasst. Aber danach war nicht gefragt.



  • Wenn du Dinge wie

    x = y //*
          //*/ z;
    

    meinst, ist das bewundernswert pedantisch. 👍



  • Bashar schrieb:

    SeppJ schrieb:

    Das ist auch keine reine Theorie, sondern tatsächlich kennt praktisch so ziemlich jeder C89-Compiler das "//".

    Ach, wirklich? Dann wär ja ziemlich jeder C89-Compiler nicht standardkonform (man kann Programme schreiben, die ein anderes Ergebnis liefern, wenn // ein Kommentar ist).

    eben. soweit ich weiß, kommt der doppelslash-kommentar aus dem c++ bereich? und c++ ist jünger als c, d.h das kann schon nicht sein. von wann ist c++? ohne jetzt hier groß irgendwas googlen zu wollen, schätze ich mal, dass c++ von ca . 1985-1990 (?) standardisiert wurde. dies bedeutet, dass der C89 standard schon verabschiedet war. und dass der standard nachträglich geändert wird, glaub ich nicht.
    jeder, der reines ANSI-C programmieren will, sollte weiterhin "/*"-kommentare nutzen. die werden nämlich von genau 100% der c compiler unterstützt.



  • /* // kommentar */ schrieb:

    jeder, der reines ANSI-C programmieren will, sollte weiterhin "/*"-kommentare nutzen. die werden nämlich von genau 100% der c compiler unterstützt.

    Naja, ist schon recht praktisch, mit /* / Codebereiche auszukommentieren zum Testen. Und dann // zum Beschreiben.
    Wenn man /
    */ zum Beschreiben nimmt, dann halt mit #if 0 #endif auskommentieren, auch wenn's die IDE mit dem Syntaxhighlighter nicht rafft.



  • volkard schrieb:

    /* // kommentar */ schrieb:

    jeder, der reines ANSI-C programmieren will, sollte weiterhin "/*"-kommentare nutzen. die werden nämlich von genau 100% der c compiler unterstützt.

    Naja, ist schon recht praktisch, mit /* / Codebereiche auszukommentieren zum Testen. Und dann // zum Beschreiben.
    Wenn man /
    */ zum Beschreiben nimmt, dann halt mit #if 0 #endif auskommentieren, auch wenn's die IDE mit dem Syntaxhighlighter nicht rafft.

    findest du wirklich, man sollte das mischen? ich bin da sehr puristisch. entweder, oder.



  • /* // kommentar */ schrieb:

    soweit ich weiß, kommt der doppelslash-kommentar aus dem c++ bereich? und c++ ist jünger als c, d.h das kann schon nicht sein. von wann ist c++? ohne jetzt hier groß irgendwas googlen zu wollen, schätze ich mal, dass c++ von ca . 1985-1990 (?) standardisiert wurde.

    Die einzeiligen Kommentare per // stammen ursprünglich von BCPL und der erste C++-Standard wurde erst 1998 ratifiziert.



  • /* // kommentar */ schrieb:

    ohne jetzt hier groß irgendwas googlen zu wollen, schätze ich mal, dass c++ von ca . 1985-1990 (?) standardisiert wurde.

    1992-1998. 1998 wurde der erste Standard verabschiedet, 1992 das erste Paper der zuständigen working group veröffentlicht.

    Was //-Kommentare angeht: Ich halte normalerweise nicht viel davon, Whitespaces (in diesem Fall Newlines) zum Teil der Syntax zu erheben, aber //-Kommentare sind schon ziemlich bequem -- gerade bei mehrzeiligen Kommentaren, die neben dem Code stehen:

    x = y;           /* Da sind traditionelle */
    do_something();  /* Kommentare doch etwas */
    foobar(x, y);    /* unangenehm.           */
    

    Das größere Problem liegt aus meiner Sicht aber darin, dass C-Kommentare nicht sehr sauber spezifiziert sind (sich insbesondere nicht schachteln lassen). So ist

    /* foo /* bar */ ab hier nicht mehr kommentiert. */
    

    Das hätte man besser regeln können.



  • EinGast schrieb:

    /* // kommentar */ schrieb:

    soweit ich weiß, kommt der doppelslash-kommentar aus dem c++ bereich? und c++ ist jünger als c, d.h das kann schon nicht sein. von wann ist c++? ohne jetzt hier groß irgendwas googlen zu wollen, schätze ich mal, dass c++ von ca . 1985-1990 (?) standardisiert wurde.

    Die einzeiligen Kommentare per // stammen ursprünglich von BCPL und der erste C++-Standard wurde erst 1998 ratifiziert.

    schon wieder was dazugelernt!

    hat zufällig hier jemand den ANSI-C standard gelesen, und weiß, ob jetzt "//" schon damals als kommentar galt?



  • threadstarter schrieb:

    EinGast schrieb:

    Die einzeiligen Kommentare per // stammen ursprünglich von BCPL und der erste C++-Standard wurde erst 1998 ratifiziert.

    schon wieder was dazugelernt!

    hat zufällig hier jemand den ANSI-C standard gelesen, und weiß, ob jetzt "//" schon damals als kommentar galt?

    Erst ab C99. Hab ich doch schon gesagt.



  • seldon schrieb:

    Wenn du Dinge wie

    x = y //*
          //*/ z;
    

    meinst, ist das bewundernswert pedantisch. 👍

    Danke, das konkrete Beispiel ist mir nicht eingefallen, aber genau daran dachte ich.


Log in to reply