ホームページ > バックエンド開発 > C++ > C の 1 定義ルールとは何ですか?また、プログラムの一貫性をどのように確保するのですか?

C の 1 定義ルールとは何ですか?また、プログラムの一貫性をどのように確保するのですか?

Barbara Streisand
リリース: 2025-01-06 01:32:39
オリジナル
932 人が閲覧しました

What is the C   One-Definition Rule and How Does it Ensure Program Consistency?

C の 1 定義ルールの性質

C では、1 定義ルールは複数のプログラムを制限することによってプログラムの動作を制御します。翻訳単位内の特定のエンティティの定義。このルールの詳細を詳しく見てみましょう:

公式定義

The C Programming Language, 3rd ed., P. 9.2.3 の参照を超えて、ルールの公式定義は C 標準のセクションにあります。 3.2:

"No translation unit shall contain more than one definition of any variable, function, class type, enumeration type or template."
ログイン後にコピー

さらに、この標準では、プログラムで使用されるすべての非インライン関数またはオブジェクトには、厳密に 1 つの定義が必要であることが強調されています。インライン関数を使用する場合は、それが参照されるすべての翻訳単位で定義する必要があります。

影響

このルールにより、次のことが保証されます。

  • 一貫性: 複数の定義により、プログラムの動作。単一定義ルールは、このような競合を防ぎます。
  • 一意のエンティティ ID: 各変数、関数、クラス型、およびその他の定義されたエンティティは一意の ID を持ち、プログラム全体で一貫した動作が保証されます。
  • リンカーの互換性: 複数の定義が存在する場合、リンカーは参照を正しく解決できません。このルールにより、スムーズなリンクとコンパイルが可能になります。

例外

1 定義ルールは、以下には適用されません。

  • インライン関数。使用されるすべての翻訳単位で定義する必要があります。 in.
  • 暗黙的に定義された関数 (C 標準のセクション 12.1、12.4、および 12.8 を参照)。

以上がC の 1 定義ルールとは何ですか?また、プログラムの一貫性をどのように確保するのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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