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