Quelle est la valeur de la VERSION STDC pour C11?
je sais que les compilateurs utiliser __STDC__
pour indiquer qu'un compilateur C standard et, à partir de là, vous pouvez utiliser __STDC_VERSION__
comprendre niveau de la norme que vous utilisez.
je sais aussi que le C90 avait pas de valeur, C90 amendement 1 a <!-Et C99 avait 199901L
.
La dernière C1x projet, j'ai dit simplement 201ymmL
et je suppose qu'il a été fait une valeur moins "vague" dans la norme finale.
je pense qu'il sera 201112L
depuis que C11 a été ratifié, mais j'aimerais en être certain.
je pensais que je pourrais essayer, à l'aide de gcc -std=c1x
mais la version de gcc
je me présente ne supporte pas encore cela.
quelqu'un sait-il Quelle est la valeur réelle?
2 réponses
-std=c11
gcc
,201112L
est utilisé pour __STDC_VERSION__
Voir le gcc
patch le 20 décembre 2011 sur gcc
ml:
http://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg23572.html
et notez que apparemment la version ISO de C11 a oublié de mettre à jour le 201ymmL
dans le Projet.
la valeur finale prévue de ____STDC_VERSION_____, 201112L, est aussi implémentée (l'éditeur a oublié de mettre à jour les paramètres de 201ymmL avant d'envoyer le document pour publication par L'ISO).
Voir aussi DR #411, ce qui rend officiel le fait que la valeur est 201112l
. L'éditeur a dit qu' " le Comité s'efforce de faire approuver cette proposition en tant que CT le plus tôt possible.". (TC = "Rectificatif Technique")
EDIT (16 juillet 2012): Rectificatif Technique 1 (ISO / IEC 9899: 2011/Cor 1: 2012) publié le Le 15 juillet 2012 fixe le __STDC_VERSION__
201112L
.
Selon poste à la GCC liste de diffusion, la valeur finale est, comme vous l'avez soupçonné, 201112L.