- ベストアンサー
プリプロセッサ
プリプロセッサってなんですか? 基本情報の教科書によると、 言語仕様を拡張した命令分を、その言語でゆるされる名例文に変換する。 と書いてあります。 もうちょっと簡単にしてほしいです、イマイチわかりません。 お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
プリプロセッサは、コンパイルの前に処理するプログラムで、ソースコードで 行頭に#を付けて指示をします。そうするとコンパイルの前にソースが指示に 従って修正されて、コンパイルされることになります。 よく使うものとして #include <stdio.h> これは、その位置に指定したファイルを読み込んでソースの一部にする ものです。インクルードファイル(ヘッダファイルの指定によく使いますね) #define SAMPLE #ifdef SAMPLE (サンプル版のときのコード) #else (製品版のときのコード) #endif こうすると、#define SAMPLE があるときはelse以下はプリプロセッサでカットされ サンプル版用のコードのみが生成され、それがコンパイルされます。 #define MAXSIZE 100 char BUF[MAXSIZE]; これは、マクロ定数で、プリプロセッサがMAXSIZEの部分を100に置換します。 他にはマクロ関数などもあります。こちらもご参考にどうぞ。 http://m1.aol.com/squ4286/clicksoft/clesson/clesson22.htm
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
コンパイル系の言語でコンパイルをする前(プレ)処理(プロセス)において、ソースのテキストを予め指示された内容にしたがって書きなおすプロセッサ(言語処理ソフト)です。「言語仕様を拡張した命令分を、その言語でゆるされる命令文に変換する。」というケースがあるのでしょうが(広く一般的に説明しようとされているため却って判り難い)、有名なのは、C言語の#define、#elif,・・,#undefなど13個ほどのものです。 条件つきコンパイルに当たります。 http://tanizaki.ctrl.titech.ac.jp/matx-htm/node47.htm http://www.kusa.ac.jp/~kajiura/c/hairetsu/newpage33.htm C言語のマクロ置換やアセンブラなどのマクロ命令なども、そのマクロ命令が現われると、多少の適当な修正をして、一連の機械語セットやC言語のソースと置き変えます。 http://dontaku.csce.kyushu-u.ac.jp/~yoshi_w/study/b4seminar/0728/node2.html この辺になるとコンパイルとの境界が曖昧になってきます。
お礼
ありがとうございます、 とてもわかりやすいです、
お礼
ありがとうございます。URL見ました。 yahooってとても便利ですね、
たとえば・・・ C言語のプログラムまともに書いたことないんですけどね・・・。 いつもはcobolなんで。 #define STUDENTS 10 .... int counter; .... for (counter = 1; counter <= STUDENTS; counter++){ .... } とやればSTUDENTSがプリプロセッサで変換され10という値になっているので、10回カウンタがカウントされるということでしょう?
お礼
ありがとうございます。
お礼
ありがとうございます。 #defineだったのですか、