預處理指令使用#內標記。
一 : #define語句
用來定義宏。例如定義:
#define TRUE 1
解釋 : 定義了一個宏名稱爲TRUE,並使它的值爲1.那麼之後TRUE就可以用於程序中所有需要值爲1的常量的地方。
測試實例:
在DefineDemo.h中定義宏 : #define TRUE 1 。注意一般將其定義在最上面,如下圖(定義在了#import的上面)
調用的地方:可以在任何地方調用。
①:在DefineDemo.m中調用:
②:在主程序main.m中調用:
結果:
注意 : 宏是隻讀的
二 : 條件編譯之 #ifdef , #endif , #else , #ifndef , #elif
#ifdef : 如果存在編譯參數
#ifndef : 如果不存在編譯參數
例如:修改了下DefineDeno.m中Print方法的實現,如下:
我沒有定義編譯參數AINY , 則會打印Ainy not。結果如下,確實如此:
那麼問題來了,如何定義一個編譯參數AINY呢 ??????
在Build Settings中:
再次運行結果,則是打印TRUE值1
顯然 : #ifdef , #ifndef 和Build Settings中的如上圖所示的配置是相關的
三 : #if 是判斷常量的
如:
四 : 編譯參數之 #undef : 消除某個編譯參數
如 : #undef AINY , 在這句執行後 , 所有#if AINY 及 #if defined(AINY) 都爲FALSE