Maison > développement back-end > C++ > Comment puis-je déterminer la version standard C implémentée de mon compilateur ?

Comment puis-je déterminer la version standard C implémentée de mon compilateur ?

DDD
Libérer: 2024-12-13 15:59:11
original
222 Les gens l'ont consulté

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

Détermination de la version standard C implémentée

La détermination de l'implémentation standard C de votre compilateur peut être cruciale pour garantir la compatibilité et utiliser les dernières fonctionnalités du langage . Plusieurs standards C ont été publiés, dont C 98 et C 03.

Une méthode pour identifier la version standard consiste à vérifier la macro __cplusplus.

__cplusplus Macro

Selon la FAQ C 0x de Bjarne Stroustrup, la macro __cplusplus sera définie sur une valeur supérieure à 199711L pour C 11 et supérieur. Cependant, certains compilateurs peuvent ne pas définir cette macro correctement.

GCC

gcc a l'habitude de définir __cplusplus sur 1, quelle que soit la version linguistique. Ce problème a été résolu dans gcc 4.7.0.

MSVC

MSVC définit également de manière incorrecte __cplusplus comme 199711L. Pour obtenir la valeur correcte, ajoutez /Zc:__cplusplus aux indicateurs du compilateur ou vérifiez la macro _MSVC_LANG spécifique à MSVC.

Valeurs __cplusplus attendues

  • C pré -C 98 : 1
  • C 98 : 199711L
  • C 98 TR1 : Ne peut pas être déterminé à l'aide de __cplusplus
  • C 11 : 201103L
  • C 14 : 201402L
  • C 17 : 201703L
  • C 20 : 202002L
  • C 23 : 202302L

Autres méthodes

Si __cplusplus est insuffisant ou indisponible , d'autres approches include :

  • Macros spécifiques au compilateur : L'inspection des macros définies par le compilateur peut révéler la version standard implémentée.
  • Boost.Config : Cette bibliothèque fournit des macros pour vérifier des fonctionnalités C spécifiques.
  • Évaluation des fonctionnalités : L'exécution de code qui utilise des fonctionnalités spécifiques peut déterminer leur disponibilité et, par conséquent, la version standard implémentée.

Il est important de noter que tous les compilateurs n'implémentent pas pleinement toutes les fonctionnalités d'un standard C. Un examen attentif de la compatibilité du compilateur et de la prise en charge des fonctionnalités est nécessaire pour garantir une exécution fiable du code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal