• ベストアンサー

プリプロセッサ

プリプロセッサってなんですか? 基本情報の教科書によると、 言語仕様を拡張した命令分を、その言語でゆるされる名例文に変換する。 と書いてあります。 もうちょっと簡単にしてほしいです、イマイチわかりません。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.3

プリプロセッサは、コンパイルの前に処理するプログラムで、ソースコードで 行頭に#を付けて指示をします。そうするとコンパイルの前にソースが指示に 従って修正されて、コンパイルされることになります。 よく使うものとして #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

amuro_78
質問者

お礼

ありがとうございます。 #defineだったのですか、

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

コンパイル系の言語でコンパイルをする前(プレ)処理(プロセス)において、ソースのテキストを予め指示された内容にしたがって書きなおすプロセッサ(言語処理ソフト)です。「言語仕様を拡張した命令分を、その言語でゆるされる命令文に変換する。」というケースがあるのでしょうが(広く一般的に説明しようとされているため却って判り難い)、有名なのは、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 この辺になるとコンパイルとの境界が曖昧になってきます。

amuro_78
質問者

お礼

ありがとうございます、 とてもわかりやすいです、

noname#4252
noname#4252
回答No.2
参考URL:
http://computers.yahoo.co.jp/dict/programming/tools/1908.html
amuro_78
質問者

お礼

ありがとうございます。URL見ました。 yahooってとても便利ですね、

noname#5645
noname#5645
回答No.1

たとえば・・・ C言語のプログラムまともに書いたことないんですけどね・・・。 いつもはcobolなんで。 #define STUDENTS 10 .... int counter; .... for (counter = 1; counter <= STUDENTS; counter++){ .... } とやればSTUDENTSがプリプロセッサで変換され10という値になっているので、10回カウンタがカウントされるということでしょう?

amuro_78
質問者

お礼

ありがとうございます。

関連するQ&A