ホーム

トップ
準備
Become An Xcoder

練習問題0
練習問題1
練習問題2
練習問題3
練習問題4
練習問題5
練習問題6
練習問題7
練習問題8
練習問題9
練習問題10
練習問題11
練習問題12
練習問題13
練習問題14
練習問題15

C言語補習1
C言語補習2
C言語補習3

推薦図書
ブックマーク

最後に

掲示板

Cocoa Docs

自作ソフトいろいろ




修正日: 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 」とか「#import 」の後の辺に置いてあげればOKです。ちなみにこの「k○○」のkは#defineで定義したキーワード用の自分ルールで、もちろん付けなくても構いません。ただしこうして区別した方が、変数などと混同しなくてすむのでわかりやすいと思います。
 このように定数をキーワードで宣言しておくと、例えば星座の番号を変える必要が出た場合、ソースコード中の数字を書き換えて回らなくても、#defineのところだけ直してやれば良いので楽だし、バグの危険性もずっと少なくなります。
 
 いかがでしょうか。これはそれほど難しくないのではないかと思います。これは後々とても役に立ちますので、ぜひ覚えておいてください。