Ich habe dieses C-Programm aus dem Internet gefunden:
#include <stdio.h>
int main(){
printf("C%d\n",(int)(90-(-4.5//**/
-4.5)));
return 0;
}
Das Interessante an diesem Programm ist, dass es beim Kompilieren und Ausführen im C89-Modus gedruckt wird C89
und beim Kompilieren und Ausführen im C99-Modus gedruckt wird C99
. Aber ich kann nicht herausfinden, wie dieses Programm funktioniert.
Können Sie erklären, wie das zweite Argument von printf
im obigen Programm funktioniert?
gcc
. Ohne dass std=c99
Sie eine Warnung erhalten, und wenn Sie sie ignorieren, gcc
wird dies immer noch//
als Beginn eines Kommentars interpretiert (ah - Sie müssen es auch verwenden -pedantic
. Ich habe das standardmäßig aktiviert.)
C89
mit explizit std=c89
in gcc 4.9.2.
#if __STDC_VERSION__ >= 199901L
, nicht den //
Kommentar-Trick. =)
//
Kommentar im C ++ - Stil wurde in C99 eingeführt.