Objective-C之預處理程序

預處理指令使用#內標記。

一 : #define語句

用來定義宏。例如定義:

#define TRUE 1

解釋 : 定義了一個宏名稱爲TRUE,並使它的值爲1.那麼之後TRUE就可以用於程序中所有需要值爲1的常量的地方。

測試實例:

在DefineDemo.h中定義宏 : #define TRUE 1 。注意一般將其定義在最上面,如下圖(定義在了#import的上面)

01.png

調用的地方:可以在任何地方調用。

①:在DefineDemo.m中調用:

02.png

②:在主程序main.m中調用:

03.png

結果:

04.png

注意 : 宏是隻讀的


二 : 條件編譯之 #ifdef , #endif , #else , #ifndef , #elif

#ifdef : 如果存在編譯參數

#ifndef : 如果不存在編譯參數

例如:修改了下DefineDeno.m中Print方法的實現,如下:

05.png

我沒有定義編譯參數AINY , 則會打印Ainy not。結果如下,確實如此:

06.png

那麼問題來了,如何定義一個編譯參數AINY呢 ??????

在Build Settings中:

07.png

再次運行結果,則是打印TRUE值1

顯然 : #ifdef , #ifndef 和Build Settings中的如上圖所示的配置是相關的

三 :  #if 是判斷常量的

如:

08.png


四 : 編譯參數之 #undef : 消除某個編譯參數

如 : #undef AINY , 在這句執行後 , 所有#if AINY 及 #if defined(AINY) 都爲FALSE

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章