條件編譯

條件編譯:預編譯處理/預編譯命令 經常使用的3種寫法 ui

 1. url

/*
 通常狀況下,源程序中全部的行都參加編譯。可是有時但願對其中一部份內容只在知足必定條件才進行編譯,也就是對一部份內容指定編譯的條件,這就是「條件編譯」。有時,但願當知足某條件時對一組語句進行編譯,而當條件不知足時則編譯另外一組語句。
 條件編譯命令最多見的形式爲:  #ifdef 標識符  程序段1  #else  程序段2  #endif
 它的做用是:當標識符已經被定義過(通常是用#define命令定義),則對程序段1進行編譯,不然編譯程序段2。
 其中#else部分也能夠沒有,即:  #ifdef  程序段1  #denif

*/



/*
 條件編譯(Conditional compilation)是採用  編譯前預處理  的方式,編譯器根據設定某個常量來決定編譯哪些代碼而捨棄哪些代碼,不編譯到中間或目標代碼中  預編譯命令/處理
 條件編譯' ifdef 'else 'endif
 條件編譯常數 Debug ; trace
 條件編譯常量 conditional compilation constants
 */



#ifdef DEBUG
	NSLog(@"DEBUG");
#else
	NSLog(@"NOT DEBUG");
#endif



打開scheme,改變build configuration爲debug,會輸出DEBUG,改成release,會輸出NOT DEBUG.這是簡單的一個例子。

2. spa

/*
 有時也採用下面的形式:  #ifndef 標識符  程序段1  #else  程序段2  #endif
 只是第一行與第一種形式不一樣:將「ifdef」改成「ifndef」。它的做用是:若標識符未被定義則編譯程序段1,不然編譯程序段2。這種形式與第一種形式的做用相反。  以上兩種形式用法差很少,根據須要任選一種,視方便而定。
*/



3. debug

/*
 還有一種形式,就是#if後面的是一個表達式,而不是一個簡單的標識符:  #if 表達式  程序段1  #else  程序段2  #endif
 它的做用是:當指定的表達式值爲真(非零)時就編譯程序段1,不然編譯程序段2。能夠事先給定必定條件,使程序在不一樣的條件下執行不一樣的功能。
*/



參考:

http://wenku.baidu.com/link?url=KYvicjzm-AX7ome-wQL-Aj4b2rBX6dJ55Jslmx8o2lq372Lv6dDqoGf6_MYvLYMBDYJmKcgPIBxaE-pAkwnrlII56-wf8jR8ZR5tL4UvQkO code

相關文章
相關標籤/搜索