[C言語] 翻訳単位

Translation Unit.

標準的な翻訳単位

  • 1つのソースファイル (*.c)
  • 上記のソースファイルからインクルードされた全てのヘッダファイル (*.h)
    • ヘッダファイルの中からインクルードされたヘッダファイルも全て含む。

但し、プリプロセッサによって除外されたソースコード(条件付きコンパイル #if#endif など)は翻訳単位から取り除かれる。

スコープ

翻訳単位は関数や変数のスコープの境界となる。

記憶クラス指定子

記憶クラス指定子 意味 概要
static 内部結合 staticで修飾した変数や関数を現在の翻訳単位内でのみ有効にする(外部から隠す)。
extern 外部結合 externで修飾した変数や関数が他の翻訳単位(または同じファイルの別の場所)で定義されていることをコンパイラに伝える。

内部リンク

外部リンク