Ho trovato questo programma C dal web:
#include <stdio.h>
int main(){
printf("C%d\n",(int)(90-(-4.5//**/
-4.5)));
return 0;
}
La cosa interessante di questo programma è che quando viene compilato ed eseguito in modalità C89, stampa C89
e quando viene compilato ed eseguito in modalità C99, stampa C99
. Ma non sono in grado di capire come funziona questo programma.
Puoi spiegare come funziona il secondo argomento del printf
programma sopra?
gcc
. Senza std=c99
si otterrà un messaggio di avviso, e se si ignora, gcc
sarà ancora interpretare il //
come inizio di un commento (ah - si deve utilizzare -pedantic
. Così ho che per impostazione predefinita.)
C89
esplicito std=c89
in gcc 4.9.2.
#if __STDC_VERSION__ >= 199901L
, non il //
trucco dei commenti. =)
//
commento in stile C ++ è stato introdotto in C99.