27

ソースファイルと翻訳単位の違いは何ですか?

4

3 に答える 3

34

C ++標準から:

前処理ディレクティブ#includeを介してインクルードされたすべてのヘッダーとソースファイルを含むソースファイルから、条件付きインクルード前処理ディレクティブのいずれかによってスキップされたソース行を差し引いたものは、変換ユニットと呼ばれます。

于 2010-05-08T20:14:18.420 に答える
31

「翻訳ユニット」とは、ソースファイルに加えて、ヘッダーまたは#includeに含まれるその他のソースファイルに加えて、それらに含まれるすべてのファイルなどです。ソースファイルはまさにその...1つのソースファイルです。

それが役立つ場合は、ソースファイルをプリプロセッサが実行される「前」と考え、変換ユニットを「後」と考えてください。または、ソースファイルを変換ユニットに変換するプリプロセッサの仕事と考えてください。

于 2010-05-08T20:08:24.943 に答える
16

翻訳ユニットは、C++でのコンパイルの基本ユニットです。を含む:

  • プリプロセッサがコースを実行した後の単一のソースファイルのすべての内容
  • 直接または間接的に含まれるヘッダーファイルの内容
  • 条件付き前処理ステートメントを使用して無視された行を差し引いたもの

単一の変換ユニットは、オブジェクトファイル、ライブラリ、または実行可能プログラムにコンパイルされます。

対照的に、ソースファイルは、ファイルシステム上の他のファイルと同じように、スタンドアロンファイルです。コンパイルされると、上記のように翻訳ユニットのコンポーネントになることができます。

于 2010-05-08T20:11:49.163 に答える