Maison  >  Article  >  développement back-end  >  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
DDDoriginal
2024-11-17 06:08:03714parcourir

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;
}

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

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

#define __cplusplus 199711L

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!

Déclaration:
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