Maison > développement back-end > C++ > En-têtes C dans C : Global Namespace ou std :: Namespace ?

En-têtes C dans C : Global Namespace ou std :: Namespace ?

DDD
Libérer: 2024-11-29 17:10:12
original
358 Les gens l'ont consulté

C Headers in C  : Global Namespace or std:: Namespace?

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 :

  • Dépréciation des en-têtes "name.h" : Les en-têtes "name.h" ont été obsolètes et pourront être supprimés dans les révisions futures .
  • Clarté du code améliorée : L'utilisation de l'espace de noms std:: permet de distinguer C et C déclarations, améliorant la lisibilité du code.

Exemple :

Une approche privilégiée serait :

#include <cstdio>

int main() {
    std::printf("Hello world\n");
}
Copier après la connexion

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!

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