2012年3月31日土曜日

数値定数の定義


#defineを使った定義

objc.hの事例

YESを(BOOL)1、NOを(BOOL)0に定義

#define YES    (BOOL)1
#define NO     (BOOL)0

プラットフォームに応じてARITH_SHIFTを32、ないしは16に定義
#if defined(__LP64__)
typedef long arith_t;
typedef unsigned long uarith_t;
# define ARITH_SHIFT 32
#elsetypedef int arith_t;
typedef unsigned uarith_t;
# define ARITH_SHIFT 16
#endif





外部変数による定義(参照: CString定数の定義

NSStringの例
NSMaximumStringLengthをINT_MAX-1に定義

NSString.h
FOUNDATION_EXPORT const NSUInteger NSMaximumStringLength;

NSString.m
const NSUInteger NSMaximumStringLength=INT_MAX-1;

自分のクラスに実装する場合の例

MyClass.h
    extern const NSInteger MyIntergerConstant;

MyClass.m
    const NSInteger  MyIntergerConstant = 123;

enumによる定義

値を指定する例

NSString.h

enum {
   NSCaseInsensitiveSearch = 0x01,
   NSLiteralSearch = 0x02,
   NSBackwardsSearch = 0x04,
   NSAnchoredSearch = 0x08,
   NSNumericSearch = 0x40
};

関連Blog
NSString定数の定義
数値定数の定義

0 件のコメント: