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!