He encontrado este programa C de la web:
#include <stdio.h>
int main(){
printf("C%d\n",(int)(90-(-4.5//**/
-4.5)));
return 0;
}
Lo interesante de este programa es que cuando se compila y ejecuta en modo C89, imprime C89
y cuando se compila y ejecuta en modo C99, imprime C99
. Pero no puedo entender cómo funciona este programa.
¿Puedes explicar cómo funciona el segundo argumento de printf
en el programa anterior?
Buen truco, pero falla
—
usr2564301
gcc
. Sin std=c99
obtendrá una advertencia, y si usted lo ignora, gcc
se sigue interpretar el //
como comienzo de un comentario (ah - se han de utilizar -pedantic
., Así que tengo que de forma predeterminada.)
@Jongware Bueno, tengo
—
ikh
C89
explícito std=c89
en gcc 4.9.2.
En caso de que alguien encuentre esto mientras busca una forma de probar el soporte C99; usa algo como
—
Arkku
#if __STDC_VERSION__ >= 199901L
, no el //
truco del comentario. =)
También imprime "C99" para C11 ...
—
Lundin
//
comentario de estilo C ++ se introdujo en C99.