Objective-c-constants

提供:Dev Guides
移動先:案内検索

Objective-Cの定数

定数は、プログラムの実行中に変更されない可能性がある固定値を参照します。 これらの固定値は*リテラル*とも呼ばれます。

定数は、_整数定数、浮動定数、文字定数、または文字列リテラル_などの基本データ型のいずれかです。 列挙定数もあります。

*constants* は通常の変数と同様に扱われますが、定義後に値を変更することはできません。

整数リテラル

整数リテラルは、10進、8進、または16進定数です。 プレフィックスは、基数または基数を指定します。16進数の場合は0xまたは0X、8進数の場合は0、10進数の場合は何もありません。

整数リテラルには、UとLを組み合わせたサフィックスを付けることもできます。それぞれ、符号なしとロングを表します。 接尾辞は大文字でも小文字でも、任意の順序で指定できます。

ここに整数リテラルのいくつかの例があります-

212        /*Legal*/
215u       /*Legal*/
0xFeeL     /*Legal*/
078        /*Illegal: 8 is not an octal digit*/
032UU      /*Illegal: cannot repeat a suffix*/

以下は、整数リテラルのさまざまなタイプの他の例です-

85        /*decimal*/
0213      /*octal*/
0x4b      /*hexadecimal*/
30        /*int*/
30u       /*unsigned int*/
30l       /*long*/
30ul      /*unsigned long*/

浮動小数点リテラル

浮動小数点リテラルには、整数部、小数点、小数部、指数部があります。 浮動小数点リテラルは、10進数形式または指数形式で表現できます。

小数点形式を使用して表す場合は、小数点、指数、またはその両方を含める必要があり、指数形式を使用して表す場合は、整数部、小数部、またはその両方を含める必要があります。 符号付き指数は、eまたはEによって導入されます。

浮動小数点リテラルの例をいくつか示します-

3.14159      /*Legal*/
314159E-5L   /*Legal*/
510E         /*Illegal: incomplete exponent*/
210f         /*Illegal: no decimal or exponent*/
.e55         /*Illegal: missing integer or fraction*/

文字定数

文字リテラルは、一重引用符で囲まれます(例: 'x')。 char 型の単純な変数に格納できます。

文字リテラルは、プレーン文字(例: 'x')、エスケープシーケンス(例: '\ t')、またはユニバーサル文字(例: '\ u02C0')です。

Cにはバックスラッシュが続く特定の文字があり、特別な意味を持ち、改行(\ n)またはタブ(\ t)のような表現に使用されます。 ここでは、そのようなエスケープシーケンスコードのいくつかのリストを持っています-

Escape sequence Meaning
\\ \ character
\' ' character
\" " character
\? ? character
\a Alert or bell
\b Backspace
\f Form feed
\n Newline
\r Carriage return
\t Horizontal tab
\v Vertical tab
\ooo Octal number of one to three digits
\xhh . . . Hexadecimal number of one or more digits

以下は、いくつかのエスケープシーケンス文字を表示する例です-

#import <Foundation/Foundation.h>

int main() {
   NSLog(@"Hello\tWorld\n\n");
   return 0;
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

2013-09-07 22:17:17.923 demo[17871] Hello   World

文字列リテラル

文字列リテラルまたは定数は、二重引用符 ""で囲まれています。 文字列には、文字リテラルに類似した文字が含まれます:プレーン文字、エスケープシーケンス、およびユニバーサル文字。 文字列リテラルを使用して長い行を複数の行に分割し、それらを空白で区切ります。

文字列リテラルの例を次に示します。 3つの形式はすべて同じ文字列です。

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

定数の定義

Cには定数を定義する2つの簡単な方法があります-

  • *#define *プリプロセッサを使用します。
  • const キーワードを使用します。

#defineプリプロセッサ

以下は、#defineプリプロセッサを使用して定数を定義する形式です-

#define identifier value

次の例では、詳細に説明します-

#import <Foundation/Foundation.h>

#define LENGTH 10
#define WIDTH  5
#define NEWLINE '\n'

int main() {
   int area;
   area = LENGTH * WIDTH;
   NSLog(@"value of area : %d", area);
   NSLog(@"%c", NEWLINE);

   return 0;
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

2013-09-07 22:18:16.637 demo[21460] value of area : 50
2013-09-07 22:18:16.638 demo[21460]

constキーワード

次のように、 const プレフィックスを使用して、特定のタイプの定数を宣言できます-

const type variable = value;

次の例では、詳細に説明します-

#import <Foundation/Foundation.h>

int main() {
   const int  LENGTH = 10;
   const int  WIDTH  = 5;
   const char NEWLINE = '\n';
   int area;

   area = LENGTH * WIDTH;
   NSLog(@"value of area : %d", area);
   NSLog(@"%c", NEWLINE);

   return 0;
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

2013-09-07 22:19:24.780 demo[25621] value of area : 50
2013-09-07 22:19:24.781 demo[25621]

CAPITALSで定数を定義することは、優れたプログラミング手法であることに注意してください。