本文整理自《Objective-C 程式設計 第 6 版》第 10 章,系統梳理實例變數、屬性、全域/靜態變數、枚舉、typedef 及資料類型轉換規則。
_ 開頭命名實例變數(如 _name)。@implementation 中顯式宣告的實例變數為 私有,子類無法直接透過名稱存取,必須透過繼承的存取方法(getter/setter)。@synthesize,只要在 @property 中宣告,編譯器自動生成存取方法及實例變數。g 開頭(如 int gMoveNumber = 1;)。extern 宣告(extern int gMoveNumber;),僅為宣告不分配儲存空間。extern;少數處使用則在各方法內部單獨宣告。static int gGlobalVar = 0; 定義於類實現檔案頂層。將整數值與有意義名稱綁定,修改值只需改定義處。
enum direction { up, down, left = 10, right };
// up=0, down=1, left=10, right=11
為類型建立別名,提升程式碼可讀性:
typedef int Counter;
Counter j, n; // 明確表明 j、n 用作計數器
long double / double / float → 結果提升至最高浮點型別。Bool, char, short, bit-field, 列舉 → 全部轉為 int(整數提升)。long long / long → 另一操作數轉為同類型,結果同類型。int → 結果為 int。