要點(diǎn):
? ?1.不要用預(yù)處理指令定義常量廓脆。這樣定義出來(lái)的常量不含類型信息筛谚,編譯器只是會(huì)在編譯前據(jù)此執(zhí)行查找與替換操作。即使有人重新定義了常量值停忿,編譯器也不會(huì)產(chǎn)生警告信息驾讲,這將導(dǎo)致應(yīng)用程序中的常量值不一致。
? ?2.在實(shí)現(xiàn)文件中使用static const來(lái)定義"只在編譯單元內(nèi)可見(jiàn)的常量"。由于此類常量不在全局符號(hào)表中蝎毡,所以無(wú)需為其名稱加前綴厚柳。
? ?3.在頭文件中使用extern來(lái)聲明全局變量,并在相關(guān)實(shí)現(xiàn)文件中定義其值沐兵。這種變量要出現(xiàn)在全局符號(hào)表中悔捶,所以其名稱應(yīng)加以區(qū)隔谨读,通常用與之相關(guān)的類名做前綴星持。
比如
static const NSTimeInterval kAnimationDuration = 0.5;
常用的命名法是:若常量局限于某“編譯單元(也就是實(shí)現(xiàn)文件 implementation file)之內(nèi)”钻趋,則在前面加字母k;
若常量在類之外可見(jiàn),則通常以類名為前綴毁靶。
摘自<Effective Objective-C 2.0>.../// 后悔沒(méi)有早點(diǎn)買這本書
mark: http://www.reibang.com/p/f83335e036b5?utm_campaign=hugo&utm_medium=reader_share&utm_content=note