Maison > développement back-end > C++ > Comment déterminer la norme C par défaut utilisée par g ?

Comment déterminer la norme C par défaut utilisée par g ?

DDD
Libérer: 2024-11-17 06:08:03
original
773 Les gens l'ont consulté

How to Determine the Default C   Standard Used by g  ?

Détection standard C en g

En C , la version standard du compilateur peut affecter le comportement et la compatibilité de votre code. Lors de la compilation avec g , il est crucial de comprendre la norme par défaut.

Considérez l'extrait de code suivant :

#include <fstream>
#include <string>

int main() {
    std::string filename = "input.txt";
    std::ifstream in(filename);

    return 0;
}
Copier après la connexion

Si vous compilez ce code sous Windows à l'aide de la commande g example.cpp, il peut échoue en raison d'erreurs de l'éditeur de liens liées à la conversion de std::string en const char*. Cependant, spécifier une norme C spécifique à l'aide de g -std=c 17 example.cpp résout ce problème.

Pour déterminer la norme C par défaut utilisée par g , vous pouvez exécuter la commande suivante :

g++ -dM -E -x c++ /dev/null | grep -F __cplusplus
Copier après la connexion

Par exemple, en utilisant cette commande sur la version Ubuntu 4.8.4 de g , vous obtiendrez le résultat :

#define __cplusplus 199711L
Copier après la connexion

Cela indique que la norme C par défaut pour cette version de g est C 98 ( 199711L représente la révision de novembre 1997 de la norme C).

Il est recommandé de toujours spécifier explicitement la norme C souhaitée lors de la compilation avec g . Cela garantit que le code est conforme à la norme prévue et évite les problèmes de compatibilité potentiels pouvant résulter de l'utilisation d'une norme obsolète ou indésirable.

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