Ich weiß, dass Compiler verwenden __STDC__
um anzuzeigen, dass es sich bei einem Compiler um Standard-C handelt und Sie von dort aus verwenden können __STDC_VERSION__
herauszufinden, welche eben des Standards, den Sie verwenden.
Ich weiß auch, dass C90 keinen Wert hatte, C90-Änderung 1 hatte 199401L
und C99 hatte 199901L
.
Der neueste C1x-Entwurf, den ich habe, sagt es einfach so 201ymmL
und ich gehe davon aus, dass es im endgültigen Standard zu einem weniger “vage” Wert gemacht wurde.
Meine Vermutung ist, dass es so sein wird 201112L
Seitdem wurde C11 ratifiziert, aber ich möchte sicher sein.
Ich dachte, ich könnte versuchen, es zu verwenden gcc -std=c1x
aber die Version von gcc
Ich laufe unterstützt das noch nicht.
Weiß jemand wie hoch der tatsächliche Wert ist?
Mit -std=c11
in gcc
, 201112L
wird verwendet für __STDC_VERSION__
Sieh dir das an gcc
Patch am 20. Dezember 2011 auf gcc
Milliliter:
https://www.mail-archive.com/[email protected]/msg23572.html
Und beachten Sie, dass anscheinend die ISO-Version von C11 vergessen hat, die zu aktualisieren 201ymmL
aus dem Entwurf.
Das vorgesehene Finale __STDC_VERSION__
Wert, 201112L
ist ebenfalls implementiert (der Editor hat vergessen, die 201ymmL
Platzhalter, bevor das Dokument zur Veröffentlichung durch ISO gesendet wird).
Siehe auch DR Nr. 411was es offiziell macht, dass der beabsichtigte Wert ist 201112l
. Das hat die Redaktion gesagt “Das Komitee versucht, es so schnell wie möglich als TC genehmigt zu bekommen.”. (TC = “Technische Berichtigung”)
EDIT (16. Juli 2012): Technische Berichtigung 1 (ISO/IEC 9899:2011/Cor 1:2012) veröffentlicht am 15. Juli 2012 behebt die __STDC_VERSION__
zu 201112L
.
Entsprechend Dies Post an die GCC-Mailingliste, der letzte Wert ist, wie Sie vermutet haben, 201112L.
Auf jeden Fall ist die Nummerierung der C-Versionen so grob, dass Sie einfach testen können
> 201100L
.– Jens Gustedt
15. Februar 2012 um 14:14 Uhr
Duplikat: Was ist C11 cor 1:2012?.
– Ludin
27. September 2019 um 8:36 Uhr
Lundin: habe den Dupe geschlossen.
– paxdiablo
27. September 2019 um 9:26 Uhr
@paxdiablo Ja gut … weder du noch ich waren dafür geeignet (einen Post als Dupe mit unserem eigenen Post als Ziel zu schließen), da wir parteiisch sind. Der verlinkte ist aber kein Dupe davon, sondern umgekehrt, da der TC andere Dinge enthielt als
__STDC_VERSION__
auch.– Ludin
27. September 2019 um 10:27 Uhr
Als Nachtrag für alle Suchenden ist der Wert für C17
201710L
.– Tobi
31. Dezember 2021 um 17:32 Uhr