Utilisation des en-têtes C en C : Global Namespace ou std:: Namespace ?
En C , l'utilisation des en-têtes C est possible avec des modifications de leurs noms, par exemple, stdio.h devient cstdio. Cela soulève la question de savoir s'il est préférable d'utiliser les fonctions de l'espace de noms std:: ou de l'espace de noms global lors de l'appel de fonctions C en code C.
Explication :
Selon la norme C 11, tous les noms d'en-tête C sous la forme "name.h" sont automatiquement placés dans l'espace de noms global pour assurer la compatibilité avec la bibliothèque standard C. Cependant, la norme ne précise pas si ces noms sont d'abord déclarés ou définis dans l'espace de noms std:: puis injectés dans l'espace de noms global ou vice versa.
Recommandation :
Sur la base des recommandations du Standard, il est suggéré de préférer inclure les en-têtes "cname" (par exemple, cstdio) et d'utiliser les déclarations et définitions du std:: espace de noms pour les raisons suivantes :
Exemple :
Une approche privilégiée serait :
#include <cstdio> int main() { std::printf("Hello world\n"); }
Conclusion :
Bien qu'il soit possible d'appeler des fonctions C en utilisant soit l'espace de noms global, soit std : espace de noms, il est plus conseillé de suivre les suggestions du standard C et de préférer utiliser les en-têtes cname avec std :: déclarations et définitions d'espace de noms.
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!