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?

23
demandé sur Charles 2012-02-15 17:21:49

2 réponses

-std=c11gcc,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.

25
répondu ouah 2012-07-16 12:46:14

Selon poste à la GCC liste de diffusion, la valeur finale est, comme vous l'avez soupçonné, 201112L.

2
répondu Dan Moulding 2012-02-15 13:33:32