c各段階の解釈

1105 ワード

         C  ,    、   、  ,                。                   ?
A、   
B、  
C、  
D、  

A: 
前処理は

言語プログラムがソースコードから実行可能プログラムに変わる最初のステップは、主に

言語コンパイラは、ヘッダファイルの含む、マクロ定義の拡張、条件コンパイルの選択など、さまざまな前処理コマンドを処理します.
B: 
コンパイル前、C
言語コンパイラは文法分析、文法分析を行います
(-fsyntax-only)、意味分析
そして、ソースコードを中間言語、すなわちアセンブリ言語に翻訳します.

コンパイラ作業時には,まず分析し,後で総合し,ターゲットプログラムを得る.分析とは、文法分析と文法分析を指す.統合とは,コード最適化,ストレージ割り当て,コード生成を指す. 
特筆すべきは、多くのコンパイラが直接機械言語のターゲットコードを生成し、実行可能なターゲットファイルを形成するが、コンパイラによってはまずアセンブリ言語の1級のシンボルコードファイルを生成し、それからアセンブリプログラムを呼び出して翻訳加工処理を行い、最後に実行可能な機械言語ターゲットファイルを生成するものもある. 
C: 
リンクは、再配置可能なファイルを処理し、それらの様々なシンボル参照とシンボル定義を実行可能なファイルの適切な情報に変換することです(
一般的には仮想メモリアドレス

の手順に従います.1つのプログラムに複数のファイルが含まれている場合、各ソースプログラムをそれぞれコンパイルして複数のターゲットプログラムを得る後、これらのターゲットプログラムを接続するとともに、システムが提供するリソース(関数ライブラリなど)と全体に接続し、エラーが発生しなければ接尾辞を得る.exeの実行可能ファイル
リンクフェーズになると、各関数の呼び出し関係がわかり、関数を呼び出すことができますが、見つからないことは宣言されません.
addition:
1、メモリの割り当てに関するところは、プログラムが実行されたときに対応するスペースを割り当てるのが一般的です.そうしないと、メモリを割り当てるのに何の役に立ちますか.mallocdは、実行時にスタックにメモリを動的に割り当てます.