C if endif和預處理指令

2022-07-15 20:36:14 字數 1362 閱讀 1125

目錄

參考部落格:朝向遠方

仧砉以前自己做開發的時候,基本沒有怎麼用過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...