next up previous contents
Next: 16.1.2 マクロ機能 Up: 16.1 define 文 Previous: 16.1 define 文

16.1.1 定義の基本

一般に、良く利用する定数のようなものを考える場合、それらを いちいちプログラムの中で値として書くと、変更の際に面倒であるし、 間違いの元となる。かと言って、グローバルな変数にするのも大仰で ある。そこで変数ではなく、単なる文字の置き換え機能がプリプロセッサ には用意されている。

    #define  記号定数名  値

ここで、文の終りには ; は必要ない。何故ならば、この文は コンパイルされる以前にプリプロセッサによって処理され、実際に コンパイルされる時にはコンパイラーから見れば存在しない文である からである。つまり、この #define はエディタで置き換えを 実行しているのと同じような効果を持っているのである。

例えば、

    #define  BSIZE  512

のようにすれば良い。こうした機能は標準ヘッダーでも使われており、 例えば EOF (End Of File)定数は、streambuf.h (iostream.h の中から streambuf.h は自動的に取り込まれている)の中で次のように定義 されている。

    #define  EOF   (-1)



Noriyo Kanayama