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.
-
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.
-
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.