J'ai trouvé ce programme C sur le Web:
#include <stdio.h>
int main(){
printf("C%d\n",(int)(90-(-4.5//**/
-4.5)));
return 0;
}
La chose intéressante avec ce programme est que lorsqu'il est compilé et exécuté en mode C89, il imprime C89
et lorsqu'il est compilé et exécuté en mode C99, il imprime C99
. Mais je ne suis pas en mesure de comprendre comment ce programme fonctionne.
Pouvez-vous expliquer comment le deuxième argument de printf
fonctionne dans le programme ci-dessus?
gcc
. Sans std=c99
vous un avertissement, et si vous l' ignorez, gcc
vous toujours interpréter le //
comme début d'un commentaire (ah - vous devez utiliser -pedantic
. De plus, j'ai que par défaut.)
C89
avec explicite std=c89
dans gcc 4.9.2.
#if __STDC_VERSION__ >= 199901L
, pas l' //
astuce des commentaires. =)
//
commentaire de style C ++ a été introduit dans C99.