134 votes

Pourquoi't ANSI C a-t-il des espaces de noms ?

Avoir des espaces de noms semble être une évidence pour la plupart des langues. Mais pour autant que je sache, ANSI C ne le prend pas en charge. Pourquoi pas? Avez-vous l’intention de l’inclure dans une future norme?

24voto

R.. Points 93718

C a des espaces de noms. La syntaxe est . Vous pouvez même les imbriquer comme dans . Et si vous souhaitez pouvoir accéder aux noms sans écrire le nom de l’espace de noms à chaque fois, incluez les macros de préprocesseur pertinentes dans un fichier d’en-tête, par exemple.

C’est beaucoup plus propre que le mangling de nom et les autres atrocités que certains langages commettent pour fournir des espaces de noms.

16voto

Christoph Points 64389

Historiquement, les compilateurs C ne mutilent pas les noms (ils le font sur Windows, mais le mangling pour la `` convention d’appel consiste uniquement à ajouter un préfixe de trait de soulignement).

Cela facilite l’utilisation des bibliothèques C à partir d’autres langages (y compris l’assembleur) et est l’une des raisons pour lesquelles vous voyez souvent des `` wrappers pour les API C++.

9voto

lovesh Points 1538

juste des raisons historiques. personne ne pensait avoir quelque chose comme un espace de noms à ce moment-là. De plus, ils essayaient vraiment de garder la langue simple. Ils pourraient l’avoir à l’avenir

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X