多用類型常量,少用#define預(yù)處理指令

要點:

? ?1.不要用預(yù)處理指令定義常量。這樣定義出來的常量不含類型信息,編譯器只是會在編譯前據(jù)此執(zhí)行查找與替換操作。即使有人重新定義了常量值,編譯器也不會產(chǎn)生警告信息,這將導(dǎo)致應(yīng)用程序中的常量值不一致。

? ?2.在實現(xiàn)文件中使用static const來定義"只在編譯單元內(nèi)可見的常量"。由于此類常量不在全局符號表中,所以無需為其名稱加前綴。

? ?3.在頭文件中使用extern來聲明全局變量,并在相關(guān)實現(xiàn)文件中定義其值。這種變量要出現(xiàn)在全局符號表中,所以其名稱應(yīng)加以區(qū)隔,通常用與之相關(guān)的類名做前綴。


比如

static const NSTimeInterval kAnimationDuration = 0.5;

常用的命名法是:若常量局限于某“編譯單元(也就是實現(xiàn)文件 implementation file)之內(nèi)”,則在前面加字母k;

若常量在類之外可見,則通常以類名為前綴。

摘自<Effective Objective-C 2.0>.../// 后悔沒有早點買這本書

mark: http://www.lxweimin.com/p/f83335e036b5?utm_campaign=hugo&utm_medium=reader_share&utm_content=note

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容