Encontrei este programa C na Web:
#include <stdio.h>
int main(){
printf("C%d\n",(int)(90-(-4.5//**/
-4.5)));
return 0;
}
O interessante deste programa é que, quando é compilado e executado no modo C89, ele é impresso C89e quando é compilado e executado no modo C99, é impresso C99. Mas não sou capaz de descobrir como esse programa funciona.
Você pode explicar como o segundo argumento printffunciona no programa acima?
Bom truque - mas falha com
—
usr2564301
gcc. Sem std=c99você receberá um aviso, e se você ignorá-lo, gccvai ainda interpretar a //como início de comentário (ah - você tem que usar -pedantic. Bem eu tenho que por padrão.)
@Ongware Bem, eu fiquei
—
Ikh
C89com explícito std=c89no gcc 4.9.2.
Caso alguém encontre isso enquanto procura uma maneira de testar o suporte ao C99; use algo como
—
Arkku
#if __STDC_VERSION__ >= 199901L, não o //truque de comentários. =)
Ele também imprime "C99" para C11 ...
—
Lundin
//comentário no estilo C ++ foi introduzido no C99.