• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

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 Png y_tsuda on Fri 21 Nov 2008 at 10:14

Comments:

or Preview
Social Bookmarks
  • Delicious
  • B_entry1058
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ