Maison > développement back-end > C++ > Pourquoi cstdio importe-t-il des symboles dans l'espace de noms std alors que stdio.h les importe dans l'espace de noms global ?

Pourquoi cstdio importe-t-il des symboles dans l'espace de noms std alors que stdio.h les importe dans l'espace de noms global ?

DDD
Libérer: 2024-10-31 02:01:29
original
684 Les gens l'ont consulté

Why does cstdio import symbols into the std namespace while stdio.h imports them into the global namespace?

Espace de noms cstdio stdio.h

En C , la bibliothèque C standard est disponible dans l'espace de noms std. Cependant, une idée fausse courante survient lors de l'utilisation d'en-têtes tels que cstdio et stdio.h.

L'inclusion de cstdio importe les noms de symboles dans l'espace de noms std. Cependant, l'inclusion de stdio.h importe les noms de symboles dans l'espace de noms global. En effet, les en-têtes C, y compris cstdio, se comportent comme si les noms placés dans l'espace de noms std étaient également placés dans l'espace de noms global.

Exemple :

Le code suivant utilise la fonction std::printf, qui est définie dans l'espace de noms std :

<code class="cpp">std::printf("hello world"); // Correct</code>
Copier après la connexion

En revanche, le code suivant utilise la fonction printf, qui est définie dans l'espace de noms global :

<code class="cpp">printf("hello world"); // Correct</code>
Copier après la connexion

Notez que l'inclusion de cstdio peut également rendre la fonction printf disponible dans l'espace de noms std, mais cela n'est pas garanti. Pour garantir la disponibilité dans les deux espaces de noms, il est recommandé d'utiliser l'en-tête correspondant à l'espace de noms souhaité :

  • cstdio - Noms définis dans l'espace de noms std
  • stdio.h - Noms définis dans global 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