定数(#define,const)

定数とは固定値を格納する箱です。
変数と違うところは、変数は何度でも値を代入(変更)出来るのに対し、定数には一度だけしか値を代入することができません.
プログラミングでは、予め決まった値を使用して処理を行ったり、その値をコード内で何度も使用することがあります。
このようなときに便利なのがこの定数と呼ばれるものです。

定数の作り方

Objective-Cで定数を定義する方法を紹介します。

  • 「#define」を使用
「#define」を使用して定義すると、マクロのような使い方が出来ます。
 // HIT_POINT という名前で50の値を定義する
 #define HIT_POINT 50
 // SITY_NAME という名前で"東京"という値を定義する
 #define SITY_NAME = @"東京"

▶ ワンポイント
define構文の最後にセミコロンを付けると、コンパイルエラーなどの原因となりますので基本的には付けないそうです。

  • 「const」修飾子を使用
「const」修飾子を使用して定数を定義する方法を紹介します。


『const』って?
constを定義することにより、変更できない値にすることができます。つまり定数となるわけですね。
また、defineと違い、型を定義できることが特徴のひとつとなっています。
以下、例文をあげてみます。
 // kNumという名前で10を定義
 const int kNum 10;
 // kStrという名前で「あいふぉん」を定義
 NSString * const kStr = @"あいふぉん";


『const』をグローバルな定数にしてみる
定数をグローバルなものとし、他ファイルからも参照できるようにすることが出来ます。
それには『extern』を用いて定義してやります。
方法としては、ヘッダーファイル内にて、『const』で定義したものを『extern』宣言してあげることで実現できます。
 >> ヘッダーファイル(.h)
 extern const int kNum 10;
 extern NSString * const kStr;

 >> 実装ファイル(.m)
 const int kNum 10;
 NSString * const kStr = @"あいふぉん";


定数の命名規則

定数を宣言するうえで、変数と区別する為に、別途ルールを設けることがよくあります。
Objective-C (Cocoa) では以下のような命名規則があるようです。

  • 定数名は全て大文字
 変数は基本小文字ですので、違いがわかりやすいですね。
  • 定数名の先頭を「k」にする
 どうやらドイツ語の「konstant」が由来だそうです。
  • 単語の区切りは「_(アンダーバー)」を使う
 一単語ずつ区切った方が見やすいっていうのもありますね
最終更新:2014年09月18日 18:40