修正日: 07/06/20
C言語補習2
#define
続いては#defineです。まずはサンプルを見てみましょう。
void whichZodiac( int zodiac )
{
switch(zodiac)
{
case 1:
printf("おひつじ座");
break;
case 2:
printf("おうし座");
break;
case 3:
printf("ふたご座");
break;
case 4:
printf("かに座");
break;
//以下略
}
}
星座を出力する関数です。前の四季の例であれば春から1、2、3と数えていけば、何番が何の季節かすぐにわかりましたが、12個もあるとそうはいきません。こういう数字(定数といいます)をプログラムの中で使うとバグの温床になります。そういうときは#defineを使います。サンプルコードはこちら。
#define kOhituji 1
#define kOushi 2
#define kFutago 3
//略
switch(zodiac)
{
case kOhituji:
printf("おひつじ座");
break;
case kOushi:
printf("おうし座");
break;
case kFutago:
printf("ふたご座");
break;
このように#defineを使うことで定数を好きなキーワードに置き換えることができます。ちなみにこれはあくまで定数であり、変数ではないので、プログラムの中で
kFutago=5
のように数値を変えることはできません。ただし以下のように変数に代入することはできます。
int aMyZodiac = kOushi;
書き方は
#define キーワード 数字
です。最後にセミコロンはいりません。これを「#include
このように定数をキーワードで宣言しておくと、例えば星座の番号を変える必要が出た場合、ソースコード中の数字を書き換えて回らなくても、#defineのところだけ直してやれば良いので楽だし、バグの危険性もずっと少なくなります。
いかがでしょうか。これはそれほど難しくないのではないかと思います。これは後々とても役に立ちますので、ぜひ覚えておいてください。