ホームページ > バックエンド開発 > C++ > C と C では、名前空間スコープの「const」オブジェクトの扱いが異なるのはなぜですか?

C と C では、名前空間スコープの「const」オブジェクトの扱いが異なるのはなぜですか?

Patricia Arquette
リリース: 2024-12-04 08:53:11
オリジナル
472 人が閲覧しました

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

C と C における Const の内部リンケージ

C の名前空間スコープで const オブジェクトを宣言すると内部リンケージが発生することは既知の事実です

この区別の背後にある理論的根拠は、C で観察された動作とは反対です。 C 11 標準の付録 C (セクション C.1.2)。これは、明示的な extern 宣言がなくても、ファイル スコープの const オブジェクトは内部リンケージに限定されると述べています。この変更には 2 つの目的があります:

  1. 明示的なイニシャライザの推奨: ファイル内の const オブジェクトのリンクを制限することにより、プログラマは宣言時に初期値を明示的に指定することが推奨されます。
  2. ヘッダー ファイルのインクルード: この機能により、ヘッダー ファイルに const オブジェクトを配置できます。複数のコンパイル単位にまたがって含まれるもの。

以上がC と C では、名前空間スコープの「const」オブジェクトの扱いが異なるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート