コンパイラのプリプロセッサ、コンパイラ、アセンブラ、リンカ。
プリコンパイル済み
代わりに、スペースにすべてのコメントを処理
すべての#defineを削除し、すべてのマクロ定義を展開します
条件付きコンパイルディレクティブの#を場合、処理、#IFDEF、#elifの、他の#、#endifの
含まれるファイルを展開する、の#includeを処理
#pragma指令は、使用するコンパイラのニーズを保持します
gccの前処理ディレクティブ:gccを-E file.cと-o file.i
コンパイル
前処理ファイルの解析、字句解析と意味解析
字句解析:キーワード、識別子、および他の即時の合法性
パース:発現の分析は、文法の規則に従うかどうか
セマンティック分析:表現のさらなる分析は、文法的分析に基づいて正当なものです
分析の後に生成されたコードの最適化に対応するアセンブリコードファイル
GCCコンパイラディレクティブ:gccの-S file.i -o file.s
編集
マシンにコンパイルアセンブラ命令実行可能コード
各アセンブリ文は、ほとんどのマシン命令に対応します
gccの-c file.s -o file.o
リンク
概要
コンパイルプロセスは、前処理、コンパイル、アセンブル、リンク4つの段階で構成されてい
前処理:注釈処理、マクロ、および#で始まるシンボル
コンパイル:前処理ファイルの構文解析、字句解析と意味解析
アセンブリ:マシンにアセンブラ命令実行可能コード