Maison >développement back-end >C++ >Quelle norme C utilise g par défaut ?
Une erreur de compilation récente rencontrée lors de la tentative de compilation d'un code C a soulevé la question de savoir quelle est la norme C par défaut lors de l'utilisation du compilateur g. Le code impliqué inclut le flux de fichiers et la manipulation de chaînes. Lors de la compilation à l'aide de la commande 'g example.cpp', la compilation échouait en raison d'erreurs impliquant la conversion entre les chaînes et const char*. Cependant, l'utilisation de la commande 'g -std=c 17 example.cpp' a résolu le problème.
Pour étudier la norme par défaut utilisée par g lorsque l'indicateur -std n'est pas spécifié, une méthode est présentée pour déterminer la version par défaut du standard C supportée par une version particulière de g :
Bash : Exécutez la commande suivante :
g++ -dM -E -x c++ /dev/null | grep -F __cplusplus
PowerShell : Exécutez la commande suivante :
g++ -dM -E -x c++ NUL | Select-String __cplusplus
La sortie de ces commandes affichera une ligne similaire à :
#define __cplusplus 199711L
La valeur après '__cplusplus' indique la version standard C par défaut. Dans cet exemple, il s'agit de C 98 (199711).
En tant que programmeur, la décision de spécifier ou non l'indicateur -std dépend de plusieurs facteurs :
En général, il est recommandé de spécifier explicitement la norme C à l'aide de l'indicateur -std pour éviter un comportement inattendu dû aux paramètres par défaut implicites. En contrôlant la norme C, les programmeurs peuvent garantir des performances, l'exactitude du code et la portabilité optimales.
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!