條件編譯:預編譯處理/預編譯命令 經常使用的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
2. spa
/* 有時也採用下面的形式: #ifndef 標識符 程序段1 #else 程序段2 #endif 只是第一行與第一種形式不一樣:將「ifdef」改成「ifndef」。它的做用是:若標識符未被定義則編譯程序段1,不然編譯程序段2。這種形式與第一種形式的做用相反。 以上兩種形式用法差很少,根據須要任選一種,視方便而定。 */
3. debug
/* 還有一種形式,就是#if後面的是一個表達式,而不是一個簡單的標識符: #if 表達式 程序段1 #else 程序段2 #endif 它的做用是:當指定的表達式值爲真(非零)時就編譯程序段1,不然編譯程序段2。能夠事先給定必定條件,使程序在不一樣的條件下執行不一樣的功能。 */