Folgende Behauptung wurde bei uns in der Firma von einem Berater aufgestellt:
„Kommentare hinter Makros sind gemäss neuestem Standard nicht mehr zulässig. Sobald GCC dies nicht mehr unterstützt, wird das zum Problem.“
Häähh …???
#ifdef BLA // bla bla bla
#include /\* inlude the bla header \*/
#define BLA\_BLA 1002 /\* define BLA macro \*/
#endif // end of BLA
Das soll alles nicht mehr zulässig sein?
Nun, es ist so, dass bei uns nicht viel „alter“ C-Code verwendet wird, der genau solche Kommentare hat.
Die Boost C++ Libraries sind doch auch voll mit solchen Kommentaren.
Stimmt diese Behauptung?
Kennt jemand einen guten Link im Internet, der diese Behauptung widerlegt oder untermauert (ev. in englisch?).
Folgende Behauptung wurde bei uns in der Firma von einem
Berater aufgestellt:
„Kommentare hinter Makros sind gemäss neuestem Standard nicht
mehr zulässig. Sobald GCC dies nicht mehr unterstützt, wird
das zum Problem.“
hat der Berater irgendetwas schriftliches um diese These zu unterstützen?
C99 5.1.1.2 Translation phases:
The precedence among the syntax rules of translation is specified by the following phases[…]:
[…]
3. […] Each comment is replaced by one space character. […]
4. Prepocessing directives are executed, macro invocations are expanded […] A #include preprocessing directive causes the named header or source file to be processed from phase 1 through phase 4, recursively. […]
Ich würde das so verstehen, dass erst die Kommentare durch Leerzeichen ersetzt werden und bei der Interpretation der Präprocessortokens nicht mehr vorhanden sind. Damit würde ich denken, dass von den Kommentaren nach dem Präprozessortokens höchstens ein Leerzeichen übrig bleibt. So weit ich weiß stören dort Leerzeichen nicht. Damit sollten Kommentare erlaubt sein.
Deine Aussage deckt sich mit meiner Erfahrung. Gibt es den
C99-Standard online? Habe gegoogelt, aber nichts vollständiges
gefunden.
Den Standard gibt es nicht kostenlos (legal) online. Es gibt nur irgendwelche Fehlerkorrekturen, Vorabversionen, Kommentare oder so ähnlich. Es soll aber ein PDF zu kaufen geben. Ich benutze ein Buch.