回答編集履歴
3
gccをg++に修正
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
foo.cppをコンパイルするとき、g++は。プリプロセッサcppを呼び出し、次にプリプロセッサの処理結果を指定してコンパイラ本体を呼び出し、次にリンカldを呼び出します。
|
12
12
|
|
13
|
-
どのような命令に展開されるかはg
|
13
|
+
どのような命令に展開されるかはg++ -### foo.cpp を使って見ることが出来ます。
|
14
14
|
|
15
15
|
|
16
16
|
|
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
プリプロセッサの出力を見るには g
|
23
|
+
プリプロセッサの出力を見るには g++ -E foo.cpp を実行してください。
|
24
24
|
|
25
25
|
|
26
26
|
|
2
うまく表示されないので修正
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
大雑把には「ひとつのソースコードファイルとそれに include されるヘッダファイル全体」でも良いのですが正確には違います。
|
2
2
|
|
3
|
-
文法的な意味での翻訳単位はangel_p_57さんの書かれているとおりですが、実装的な意味での翻訳単位はそれとも違います。
|
3
|
+
文法的な意味での翻訳単位はangel_p_57さんの書かれているとおりですが、コンパイラから見た実装的な意味での翻訳単位はそれとも違います。
|
4
4
|
|
5
5
|
|
6
6
|
|
1
説明を追加
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
大雑把には「ひとつのソースコードファイルとそれに include されるヘッダファイル全体」でも良いのですが正確には違います。
|
2
|
+
|
3
|
+
文法的な意味での翻訳単位はangel_p_57さんの書かれているとおりですが、実装的な意味での翻訳単位はそれとも違います。
|
2
4
|
|
3
5
|
|
4
6
|
|
@@ -8,9 +10,11 @@
|
|
8
10
|
|
9
11
|
foo.cppをコンパイルするとき、g++は。プリプロセッサcppを呼び出し、次にプリプロセッサの処理結果を指定してコンパイラ本体を呼び出し、次にリンカldを呼び出します。
|
10
12
|
|
13
|
+
どのような命令に展開されるかはgcc -### foo.cpp を使って見ることが出来ます。
|
11
14
|
|
12
15
|
|
16
|
+
|
13
|
-
コマンドラインオプションに-Dや-Uや-include等を書くと、プリプロセッサの出力するファイルはその影響を受けます。
|
17
|
+
コマンドラインオプションに-Dや-Uや-include等を書くと、プリプロセッサの出力するファイルはその影響を受けます。これらのオプションとそこで指定されたファイルも翻訳単位となります。
|
14
18
|
|
15
19
|
従って、C/C++の場合、ひとつのソースコードをプリプロセッサで処理したもの、つまりコンパイラ本体の入力になるものが翻訳単位です。
|
16
20
|
|