C 中的預處理指令,你用了多少?

2021-04-12 20:55:54 字數 1637 閱讀 8818

c#中的預處理指令

作為預處理中的一對:#region name ,#endregion可能是大家使用得最多的,我也常用它來進行**分塊,在乙個比較長的cs檔案中,這麼做確實是一件可以讓你使**更清晰的好辦法,vs也自動用這個來包含自動生成的**,它這麼做既可以使開發人員更清晰的檢視自己的**,也開了乙個好頭,使更多人使用#region。

c#中還有好幾對預處理指令,可能大家就用得比較少了。

#define symbol

#undef symbol

#if symbol [operator symbol2]...

#else

#elif symbol [operator symbol2]

#endif

#warning text text指在編譯器輸出中的警告文字

#error text  text指在編譯器輸出中的錯誤資訊

#line number [file]

關於#define要說明幾點,#define debug 等效於不寫這句話,你要不定義它才一定要寫上#undefin debug

(c# essentials一書中說 #define debug 等效於#define debug true,不過這個好像有問題)

這一段**可以說明好幾個命令:

#define debug

#define vc_v6

using system;

public class myclass }

我們可以用這些指令來自動處理測試期和發布期資料庫的連線字串之類的工作

#if !release

constr = testsqlserverconnectionstring

#else

constr = releasesqlserverconnectionstring

#endif

在編**時加上一句#undef resease,發布後刪除這一句就行了。

#define debug

using system;

namespace syntaxtest }

} 以上**會在編譯時產生乙個警告。

#define debug

using system;

namespace syntaxtest }

} 以上**會在編譯時產生乙個錯誤,編譯不通過,所以我們可以利用以上兩種指令進行一些自定義的編譯檢測。

#line 使您得以修改編譯器的行號以及(可選)錯誤和警告的檔名輸出。

#line [ number ["file_name"] | default ]

number

要為源**檔案中後面的行指定的編號。

"file_name"(可選)

希望出現在編譯器輸出中的檔名。預設情況下,使用源**檔案的實際名稱。檔名必須括在雙引號 ("") 中。

default

重置檔案中的行編號。

備註 #line 可能由生成過程中的自動中間步驟使用。例如,如果中間步驟從原始的源**檔案中移除行,但是您仍希望編譯器基於檔案中的原始行號生成輸出,則可以移除行,然後用 #line 模擬原始行號。

public class myclass2 }

警請批評指正。

C 中的預處理指令,你用了多少?

c 中的預處理指令 作為預處理中的一對 region name endregion可能是大家使用得最多的,我也常用它來進行 分塊,在乙個比較長的cs檔案中,這麼做確實是一件可以讓你使 更清晰的好辦法,vs也自動用這個來包含自動生成的 它這麼做既可以使開發人員更清晰的檢視自己的 也開了乙個好頭,使更多...

C 中的預處理指令

c 中的預處理指令 作為預處理中的一對 region name endregion可能是大家使用得最多的,我也常用它來進行 分塊,在乙個比較長的cs檔案中,這麼做確實是一件可以讓你使 更清晰的好辦法,vs也自動用這個來包含自動生成的 它這麼做既可以使開發人員更清晰的檢視自己的 也開了乙個好頭,使更多...

C 預處理指令

1.define 通常和 if一起使用 使用 define可以定義乙個符號,並通過將該符號用作表示式傳遞給 if 指令,使該表示式的計算結果為true 比如 preprocessor if.cs define debug define vc v7 using system public class ...