#if…#endif是c++種的條件編譯預處理命令 有兩種格式:
1:#ifdef 標示符
程式段1
#else
程式段2
#endif
表示:如果標示符已經被#define命令定義過,則編譯程式段1,否則編譯程式段2
2:#if 表示式
程式段1
#else
程式段2
#endif
表示:如果表示式為真,則編譯程式段1,否則編譯程式段2.
你寫出的命令應該屬於格式1
它的意思是,如果在程式中沒有對**進行過#defined ** 的定義。則編譯下面的語句,否則不編譯。這中情況多用在需要經常移植的程式模組上,或是除錯的時候用.
結合使用 #if 與 #else、#elif、#endif、#define 和 #undef 指令,可以根據乙個或多個符號是否存在來包含或排除**。 在編譯除錯版本的**或針對特定配置進行編譯時,這會很有用。
以 #if 指令開始的條件指令必須用 #endif 指令顯式終止。
#define 使您可以定義乙個符號,通過將該符號用作傳遞給 #if 指令的表示式,使該表示式計算為 true。
也可以用 /define 編譯器選項來定義符號。 可以用 #undef 來取消定義符號。
用 /define 或 #define 定義的符號與具有同一名稱的變數不衝突。 即,不應將變數名傳遞到預處理器指令,並且只能用預處理器指令計算符號。
用 #define 建立的符號的範圍是在其中定義該符號的檔案。
預編譯處理
1.編譯過程的簡介 預編譯 a.處理所有的注釋,以空格代替。b.將所有 define刪除,並展開所有的巨集定義,字串替換。c.處理條件編譯指令 if,ifdef,elif,else,endif d.處理 include,並展開被包含的檔案,把頭檔案中的宣告,全部拷貝到檔案中。e.保留編譯器需要使用的...
stdafx h預編譯處理
stdafx.h中沒有函式庫,只是定義了一些環境引數,使得編譯出來的程式能在32位的作業系統環境下執行。windows和mfc的include檔案都非常大,即使有乙個快速的處理程式,編譯程式也要花費相當長的時間來完成工作。由於每個.cpp檔案都包含相同的include檔案,為每個.cpp檔案都重複處...
c 預編譯處理
定義 預編譯又稱為預處理 是做些 文字的替換工作。處理 開頭的指令 比如拷貝 include 包含的檔案 define 巨集定義的替換 條件編譯等,就是為編譯做的預備工作的階段,主要處理 開始的預編譯指令,預編譯指令指示了在程式正式編譯前就由編譯器進行的操作,可以放在程式中的任何位置,其存放在記憶體...