目錄
參考部落格:朝向遠方
仧砉以前自己做開發的時候,基本沒有怎麼用過c#的#if之類的預處理指令。實習了之後,發現專案中c#**部分用了很多預處理指令。所以學習了一下。
這幾個#if的用法和if-else語句差不多,都是如果滿足條件則會執行。但不同的是這裡往往使用的是預處理指令。
舉個小栗子:使用系統內建指令
一般可以讓不同的版本或者不同的平台執行一些不同的測試**,來幫助我們除錯。
//vs會在編寫**時就自動判斷出將會執行哪個**塊,並把不會執行的置灰。(vs牛批!!!)
//當遊戲處於編輯器階段即還未發布時(可以在vs中改變除錯的模式為release)
#if debug
debug.log("當前是編輯器模式");
#else
debug.log("當前不是編輯器模式");
#endif
使用#define我們可以自定義指令。
使用#undef可以取消定義的指令。
注意:舉個小栗子:自定義指令
//定義放在using之前
#define test
using ***
//執行**部分
#if test
//當我們注釋掉定義時,vs中**塊內容也會自動置灰
debug.log("你好呀");
#endif
unity支援的平台#define指令如下:
從unity 2.6.0開始,你可以有選擇地編譯**。可用的選項取決於您正在編輯的編輯器的版本。給定版本號xyz(例如,2.6.0),unity公開以下格式的三個全域性#define指令:unity_x,unity_x_y和unity_x_y_z。
從unity 5.3.4開始,您可以根據unity編譯或執行給定**所需的最早版本的unity來選擇性地編譯**。給定與上述(xyz)相同的版本格式,unity 將以unity_x_y_or_newer格式公開乙個全域性#define ,可用於此目的。
預處理指令和巨集
1.預定義指令 file 進行編譯的原始檔 line 檔案當前的行號 date 檔案被編譯的日期 time 檔案被編譯的時間 stdc 如果編譯器遵循ansi c,其值為1,否則未定義。這樣可以輸出當前編譯檔案的相關資訊 2.巨集和函式的區別 1 巨集允許把引數替換到文字中。巨集引數和 define...
define和預處理指令
define和預處理指令 妖妖隨筆 預處理過程是先於編譯器對源 進行處理 進行初步的轉換 產生新的源 提供給編譯器。格式 預處理指令是以 開頭的 行,後是指令關鍵字,在關鍵字和 號之間允許存在任意個數的空白字元。空指令 沒有任何效果 include 引入乙個源 檔案 define 定義巨集 unde...
預處理指令
預處理指令是我們寫在程式 中的給預處理器 preprocessor 的 命令,而不是程式本身的語句。預處理器在我們編譯乙個c 程式時由編譯器自動執行,它負責控制對程式 的第一次驗證和消化。所有這些指令必須寫在單獨的一行中,它們不需要加結尾的分號 在這個教程的開頭我們已經提到了一種預處理指令 defi...