回答:
ここから:(ウェイバックマシンリンク)
標準C ++(ウェイバックマシンリンク)によると、翻訳単位はC ++でのコンパイルの基本単位です。これは、単一のソースファイルの内容と、直接または間接的に含まれるヘッダーファイルの内容から、条件付き前処理ステートメントを使用して無視された行を除いたもので構成されます。
単一の翻訳単位をオブジェクトファイル、ライブラリ、または実行可能プログラムにコンパイルできます。
翻訳単位の概念は、1つの定義ルールとテンプレートのコンテキストで最もよく言及されます。
翻訳単位は、すべてのインテントと目的のために、すべてのヘッダーファイルを含めた後のファイル(.c / .cpp)です。
http://msdn.microsoft.com/en-us/library/bxss3ska%28VS.80%29.aspx
明確に答えるのは難しい質問です。C ++標準は次のように述べています。
プログラムのテキストは、この国際標準ではソースファイルと呼ばれる単位で保持されます。すべてのヘッダー(17.4.1.2)とソースファイル(16.2)を前処理ディレクティブ#includeを介してインクルードし、条件付きインクルード(16.1)前処理ディレクティブによってスキップされたソース行を除いたソースファイルは、変換ユニットと呼ばれます。[注:C ++プログラムをすべて同時に翻訳する必要はありません。]
したがって、ほとんどの目的と目的のために、翻訳単位は単一のC ++ソースファイルと、プリプロセッサの#includeメカニズムを介してインクルードされるヘッダーまたはその他のファイルです。
他の質問について:
2)C ++でプログラミングするときにそれを使用することを検討すべき場合
あなたはそれを考慮することはできません-翻訳単位はC ++プログラムの基礎です。
3)C ++のみに関連している場合、または他のプログラミング言語で使用できる場合
他の言語にも同様の概念がありますが、セマンティクスは微妙に異なります。たとえば、他のほとんどの言語はプリプロセッサを使用しません。
本はそれを十分に明確にします。マイヤーズが「翻訳ユニット」を指すとき、彼はソースコードファイルを意味します。
CおよびC ++プログラムは、1つ以上のソースファイルで構成され、各ファイルにはプログラムのテキストの一部が含まれています。ソースファイルとそのインクルードファイル(#includeプリプロセッサディレクティブを使用してインクルードされるファイル)は、#ifなどの条件付きコンパイルディレクティブによって削除されたコードのセクションを含まず、「変換ユニット」と呼ばれます。
他の人が言ったように、翻訳単位は基本的に前処理後のソースファイルの内容です。これは言語文法の最上位の生成物です。CまたはC ++コンパイラーを作成している場合にのみ、心配する必要があります。
私の見解では、「翻訳単位」は通常、単一の「後処理」ソースファイルです。詳細については、このMSDNページをご覧ください。http://msdn.microsoft.com/en-us/library/bxss3ska(v=vs.80).aspx