Maison >développement back-end >C++ >Pourquoi C et C diffèrent-ils dans leur traitement des objets « const » de portée d'espace de noms ?

Pourquoi C et C diffèrent-ils dans leur traitement des objets « const » de portée d'espace de noms ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-04 08:53:11494parcourir

Why Do C   and C Differ in Their Treatment of Namespace-Scope `const` Objects?

Lien interne avec Const en C vs. C

C'est un fait connu que déclarer un objet const à la portée de l'espace de noms en C entraîne un liaison, contrairement au comportement observé en C.

La justification de cette distinction est expliquée dans l'annexe C de la norme C 11 (section C.1.2). Il indique que les objets const de portée fichier sont limités aux liens internes, même sans déclaration externe explicite. Ce changement sert deux objectifs :

  1. Encourager les initialiseurs explicites : En limitant la liaison des objets const dans le fichier, les programmeurs sont encouragés à spécifier explicitement les valeurs initiales lors de la déclaration.
  2. Inclusion de fichier d'en-tête : Cette fonctionnalité permet le placement d'objets const dans des fichiers d'en-tête inclus dans plusieurs compilations. unités.

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!

Déclaration:
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