ich bin es gewohnt zu //
um einen einzeiligen Kommentar von Java und Visual Studio zu markieren und war überrascht, dass dies für Ansi-C nicht existiert. Verwenden /* my comment */
ist ziemlich nervig. Gibt es eine andere Möglichkeit, einen einzeiligen Kommentar zu markieren, wenn Sie Ansi-C verwenden?
Einzeilige Kommentare in Ansi-C
Brett Hale
ANSI-C, nein, aber die aktuelle Standardrevision erlaubt sie, und das schon seit C99.
-
Nach einer kürzlichen Beule würde ich nur hinzufügen – ich mag es nicht, C++ zu verwenden
//
Kommentare in C99, C11 usw. Ich groke sofort, womit ich es zu tun habe: “Es ist eine C-Datei”. Es hat mir noch nie Probleme bereitet. Dies ist jedoch eine rein persönliche Präferenz. Ebenfalls,//
Kommentare funktionieren nicht in Makros – und ich suche hier nicht nach einem Makro vs. Inline-Argument.– Brett Hale
30. November 2016 um 14:26 Uhr
Du könntest auch ein Makro schreiben:
#define COMMENT(x)
int main() {
COMMENT(Hi there)
return 0;
}
Abgesehen davon ist in ANSI C nichts offensichtlich – Sie haben Recht, wenn Sie das bemerken /* */
style ist in ANSI C 89 nicht gültig
-
Das Makro hat den Nachteil, dass Ihr Kommentar keine Kommas enthalten darf, es sei denn, Sie schließen ihn in Klammern ein (wie in
COMMENT((Hi, there))
)– Café
27. November 2011 um 10:39 Uhr
-
@caf – einverstanden – ich glaube nicht, dass es Ihnen wirklich etwas bringt, einfach zu tippen
/* */
– Flexo
♦27. November 2011 um 10:40 Uhr
-
@awoodland: Ich bevorzuge die
//
Syntax zum Auskommentieren von Code, da Sie nur am Anfang der Zeile eingeben müssen. SchreibenCOMMENT(
und eine schließende Klammer am Ende wird dies überhaupt nicht verbessern.– Tod
27. November 2011 um 10:42 Uhr
-
Was ist der Vorteil eines solchen Kommentars gegenüber einem herkömmlichen?
– olegst
3. März 2016 um 9:45 Uhr
pmg
Brunnen …
ANSI-C ist C99; und es erlaubt Kommentare beginnend mit //
erstreckt sich bis zum Zeilenende.
In der zuvor veröffentlichten Norm (C89/C90) ist die //
Kommentare wurden nicht beschrieben (aber viele Compiler akzeptierten sie trotzdem als Extra).
Sie haben noch eine weitere Möglichkeit zum Kommentieren: die #if 0
/ #endif
Konstruktion (wird normalerweise zum Auskommentieren von “inaktivem” Code verwendet)
/* ... */ #if 0 This is a comment #endif /* ... */
-
Jetzt wird es etwas klarer. Ich habe die Option -pedantic verwendet, die strenges ISO C und nicht nur ANSI-C erzwingt. Ist es richtig, das zu sagen
//
ist in ASNI-C (C99) erlaubt, aber nicht in striktem ISO C?– Tod
27. November 2011 um 16:52 Uhr
-
Mit
gcc
verwendengcc -ansi -pedantic ...
ist (vorerst) dasselbe wiegcc -std=c89 -pedantic ...
. Benutzengcc
im standardkonformen Modus mit C99 (soweit es geht) versuchengcc -std=c99 -pedantic ...
– pmg
27. November 2011 um 17:23 Uhr
-
Danke fürs klarstellen! So gibt es die verschiedenen Versionen von C – C89, C99 und C11. Zumindest die ersten beiden sind auch als ANSI-C und ISO-C standardisiert, was nicht dasselbe ist, oder?
– Tod
27. November 2011 um 17:27 Uhr
-
ANSI-C oder ISO-C sind dasselbe (eines wird von ANSI veröffentlicht: American National Standards Institutedie andere nach ISO: Internationale Standardisierungsorganisation). Es gab einen C-Standard, der 1989 von ANSI (und 1990 von ISO) veröffentlicht wurde und durch den Standard von 1999 (beide Organisationen) ersetzt wurde, der durch den nächsten Standard ersetzt wird. Ein Entwurf des aktuellen Standards ist frei verfügbar unter open-std.org/JTC1/sc22/wg14/www/docs/n1256.pdf. Der Entwurf des kommenden Standards liegt vor open-std.org/JTC1/sc22/wg14/www/docs/n1548.pdf
– pmg
27. November 2011 um 17:36 Uhr
-
OK ich habe es. Aber warum interpretiert gcc -ansi immer noch als C89, wenn es einen anderen ANSI-Standard (C99) gibt?
– Tod
27. November 2011 um 17:40 Uhr
nikola-miljkovic
Entschuldigung, aber es sieht nur in ANSI-C aus /* comment */
werden verwendet.
http://members.cox.net/midian/articles/ansic1.htm
Wäre nett, wenn die Leute erklären würden, warum sie ablehnen …
– Tod
27. November 2011 um 10:54 Uhr
Der Grund für die Ablehnung liegt wahrscheinlich darin, dass Sie eine Frage stellen, die bei Google leicht gelöst werden kann. Dass ein bestimmter Kommentarstil in ANSI-C nicht existiert, ist eine Sache, Ärger auszudrücken, eine andere. Das Mischen von Kommentarstilen ist eine schlechte Angewohnheit /* nur sagen */
– Ahmed Masud
27. November 2011 um 11:05 Uhr
Nun, es stimmt, dass man leicht herausfinden kann, dass Ansi-C keine spezielle Syntax für einzeilige Kommentare hat, aber ich habe nach Alternativen gefragt.
– Tod
27. November 2011 um 12:18 Uhr
🙂 Sie können jederzeit auf den c99-Standard umsteigen, der dies unterstützt, und voila, der Ärger ist weg
– Ahmed Masud
27. November 2011 um 12:22 Uhr