Qu'est-ce que l' __STDC_VERSION__ valeur pour C11?
Je sais que les compilateurs utilisent __STDC__
pour indiquer qu'un compilateur C standard et, à partir de là, vous pouvez utiliser __STDC_VERSION__
de comprendre ce qui niveau de la norme que vous utilisez.
Je sais aussi que le C90 avait pas de valeur, C90 amendement 1 avait 199401L
et C99 avait 199901L
.
La dernière C1x projet, j'ai simplement états comme 201ymmL
et je suis en supposant qu'il a été fait un de moins "vague" de la valeur dans la norme finale.
Je pense qu'il sera 201112L
puisque c'est quand C11 a été ratifié, mais j'aimerais en être certain.
J'ai pensé que je pourrais essayer d'utiliser gcc -std=c1x
mais la version de gcc
je suis en cours d'exécution ne supporte pas encore.
Personne ne sait ce que la valeur réelle est?
- En tout cas, la numérotation des C versions est suffisamment grossier tel que vous pouvez le tester juste pour
> 201100L
. - Dupliquer: qu'est-Ce que C11 cor 1:2012?.
- Lundin: la fermeture de la dupe.
- Ouais, eh bien... ni vous, ni moi ont été adaptés pour le faire (la fermeture d'un poste de dupe avec notre propre poste en tant que cible), puisque nous sommes partielles. Liés l'un n'est pas dupe de ce que, mais dans l'autre sens, depuis le TC contenait d'autres choses que
__STDC_VERSION__
ainsi.
Vous devez vous connecter pour publier un commentaire.
Avec
-std=c11
dansgcc
,201112L
est utilisé pour__STDC_VERSION__
Voir ce
gcc
patch le 20 décembre 2011 surgcc
ml:http://www.mail-archive.com/[email protected]/msg23572.html
Et note que, apparemment, la version ISO de C11 oublié de mettre à jour le
201ymmL
du Projet.Voir aussi DR #411, ce qui rend officiel le fait que la valeur est
201112l
. L'éditeur a dit que "Le comité est d'essayer de l'obtenir approuvé un TC dès que possible.". (TC = "Rectificatif Technique")MODIFIER (16 juillet 2012): Rectificatif Technique 1 (ISO/IEC 9899:2011/Cor 1:2012) publié le juillet 15, 2012 fixe les
__STDC_VERSION__
à201112L
.-std=c11
a été ajouté àgcc
4.7 gcc.gnu.org/gcc-4.7/changes.html__STDC_VERSION__
est maintenant fixé à201112L
iso.org/iso/home/store/catalogue_tc/...Selon cette post à la GCC liste de diffusion, la valeur finale est, comme vous l'avez soupçonné, 201112L.