Translation Unit.
標準的な翻訳単位
- 1つのソースファイル (
*.c) - 上記のソースファイルからインクルードされた全てのヘッダファイル (
*.h)- ヘッダファイルの中からインクルードされたヘッダファイルも全て含む。
但し、プリプロセッサによって除外されたソースコード(条件付きコンパイル #if ~ #endif など)は翻訳単位から取り除かれる。
スコープ
翻訳単位は関数や変数のスコープの境界となる。
記憶クラス指定子
| 記憶クラス指定子 | 意味 | 概要 |
|---|---|---|
| static | 内部結合 | staticで修飾した変数や関数を現在の翻訳単位内でのみ有効にする(外部から隠す)。 |
| extern | 外部結合 | externで修飾した変数や関数が他の翻訳単位(または同じファイルの別の場所)で定義されていることをコンパイラに伝える。 |
内部リンク
外部リンク
- Microsoft 翻訳単位とリンケージ
- JPCERT/CC メモリの割り当てと解放は、同じ翻訳単位内の同一抽象レベルで行う