- 187 名前:デフォルトの名無しさん mailto:sage [2010/04/16(金) 18:50:00 ]
- >>185
#defineの#はディレクティブといふ。 C言語のソースファイルのコードはそのままコンパイラに食わせる訳じゃなくて、 プリプロセスという課程を経てプリプロセッサが吐き出したコードをコンパイラに食わせている。 プリプロセッサに命令を与える(認識させる)文字がディレクティブ(#)。 注意しなきゃいけないのは、マクロ中の#と先頭に付いている#は全く別であるということだ。 ディレクティブとしての#は先頭に付いている。 例えば一番簡単な例が #include"xxxx.h" #includeはプリプロセッサにxxxx.hっていうヘッダファイルを読み込んで、 それそのものをコピペする もし君がgccを使用しているならgcc -Eでコンパイルしてみるといい。 プリプロセス済みのソースコードが画面に吐き出されるハズだ。 命令には以下のようなものがある。 #include,#define,#if(#ifdef)+#else+#endif #ifの条件判定には式を、#ifdefの場合は予め定義の何かを使う場合が多い。 後他に#pragmaってのがあるがこれは俺は使ったことが無いので分からない。
|

|