Heim > Backend-Entwicklung > C++ > Wie kann ich die implementierte C-Standardversion meines Compilers ermitteln?

Wie kann ich die implementierte C-Standardversion meines Compilers ermitteln?

DDD
Freigeben: 2024-12-13 15:59:11
Original
263 Leute haben es durchsucht

How Can I Determine the Implemented C   Standard Version of My Compiler?

Bestimmung der implementierten C-Standardversion

Die Bestimmung der C-Standardimplementierung Ihres Compilers kann entscheidend für die Sicherstellung der Kompatibilität und die Nutzung der neuesten Sprachfunktionen sein . Es wurden mehrere C-Standards veröffentlicht, darunter C 98 und C 03.

Eine Methode zur Identifizierung der Standardversion ist die Überprüfung des Makros __cplusplus.

__cplusplus-Makro

Laut Bjarne Stroustrups C 0x-FAQ wird das __cplusplus-Makro auf a gesetzt Wert größer als 199711L für C 11 und höher. Einige Compiler setzen dieses Makro jedoch möglicherweise nicht richtig.

GCC

gcc hat in der Vergangenheit unabhängig von der Sprachversion __cplusplus auf 1 gesetzt. Dieses Problem wurde in gcc 4.7.0 behoben.

MSVC

MSVC definiert __cplusplus außerdem fälschlicherweise als 199711L. Um den richtigen Wert zu erhalten, fügen Sie entweder /Zc:__cplusplus zu den Compiler-Flags hinzu oder überprüfen Sie das MSVC-spezifische Makro _MSVC_LANG.

Erwartete __cplusplus-Werte

  • C pre -C 98: 1
  • C 98: 199711L
  • C 98 TR1: Kann nicht mit __cplusplus ermittelt werden
  • C 11: 201103L
  • C 14: 201402L
  • C 17: 201703L
  • C 20: 202002L
  • C 23: 202302L

Andere Methoden

Wenn __cplusplus nicht ausreicht oder nicht verfügbar ist , andere Ansätze include:

  • Compiler-spezifische Makros: Die Überprüfung von Compiler-definierten Makros kann die implementierte Standardversion offenbaren.
  • Boost.Config: Diese Bibliothek stellt Makros zum Überprüfen spezifischer C-Funktionen bereit.
  • Funktionsbewertung:Code ausführen der bestimmte Funktionen nutzt, kann deren Verfügbarkeit und damit die implementierte Standardversion bestimmen.

Es ist wichtig zu beachten, dass nicht alle Compiler alle Funktionen eines C-Standards vollständig implementieren. Um eine zuverlässige Codeausführung sicherzustellen, ist eine sorgfältige Prüfung der Compilerkompatibilität und Funktionsunterstützung erforderlich.

Das obige ist der detaillierte Inhalt vonWie kann ich die implementierte C-Standardversion meines Compilers ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage