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 C89e 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 printfprogramma sopra?
gcc. Senza std=c99si otterrà un messaggio di avviso, e se si ignora, gccsarà ancora interpretare il //come inizio di un commento (ah - si deve utilizzare -pedantic. Così ho che per impostazione predefinita.)
C89esplicito std=c89in gcc 4.9.2.
#if __STDC_VERSION__ >= 199901L, non il //trucco dei commenti. =)
//commento in stile C ++ è stato introdotto in C99.