C言語では、 #ifdef や #ifndef を使うことによって、条件付きのコンパイルが可能となる。
#ifdefの使い方と意味
#ifdefは、次のようにして使う。
1 #ifdef MACRO 2 ・ 3 ・ 4 ・ 5 #endif
これは、「MACROが定義されている場合は、#ifdef~#endifの中を有効にする」という意味である。
#ifndefの使い方と意味
次に、#ifndefは、逆の意味で、以下のように使う。
1 #ifndef MACRO 2 ・ 3 ・ 4 ・ 5 #endif
これは、「MACROが定義されていない場合は、#ifndef~#endifの中を有効にする」という意味である。
C言語でヘッダーを書くときの定石
この#ifndefを使ってヘッダーを書く、C言語の定石(?)がある。
以下のような、ヘッダーファイル my.h を定義する。
1 #ifndef MY_H /* ヘッダーの最初 */ 2 #define MY_H 3 ・ 4 ・ 5 ・ 6 #endif /* ヘッダーの最後 */
こうすることによって、複数のソースから my.h がインクルードされていたとしても、 確実に1度だけ my.h の中身を有効にすることができる。
これで、ヘッダーファイルの管理も楽になりますね!!
posted by
y_tsuda
on Fri 21 Nov 2008
at 10:14