C 程式設計中的預處理指令

2021-09-05 17:33:04 字數 1380 閱讀 1501

在c#中, 雖然編譯器沒有單獨的預處理器,但在處理預處理指令時如同存在乙個單獨的預處理器;這些指令用於輔助條件編譯。與 c 和 c++ 指令不同,不能使用這些指令建立巨集。

預處理器指令必須是行上的唯一指令。

c# 語言的預處理器指令:

#if

#else

#elif

#endif

# define

#undef

#warning

#error

#line

#region

#endregion

#pragma

#pragma warning

#pragma checksum

在以上這些預處理指令中,值得注意的有3個:

#line 使您可以修改編譯器的行號以及(可選)錯誤和警告的檔名輸出。下面的示例說明如何報告與行號關聯的兩個警告。#line 200 指令強迫行號為 200(儘管預設值為 #7)。另一行 (#9) 作為預設 #line 指令的結果跟在通常序列後。

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

#line hidden 指令對偵錯程式隱藏若干連續的行,這樣當開發人員在逐句通過**時,將會跳過 #line hidden 和下乙個 #line 指令(假定它不是另乙個 #line hidden 指令)之間的所有行。此選項也可用來使 asp.net 能夠區分使用者定義的**和計算機生成的**。儘管 asp.net 是此功能的主要使用者,但很可能將有更多的源生成器使用它。

#line hidden 指令不會影響錯誤報告中的檔名或行號。即,如果在隱藏塊中遇到錯誤,編譯器將報告當前檔名和錯誤的行號。

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

源**檔案可以具有 #line 指令的任何編號。

#pragma 用於給編輯器提供特殊的指令,說明如何編譯包含雜注的檔案。

主要應用

#pragma warning disable warning-list

#pragma warning restore warning-list

warning-list

警告編號的逗號分隔列表。只輸入數字,不包括字首 "cs"。

當沒有指定警告編號時,disable 禁用所有警告,而 restore 啟用所有警告。

還有乙個是#error指令將警告視為錯誤:

#error warning disable warning-list

#error warning restore warning-list

C 程式設計中的預處理指令

在c 中,雖然編譯器沒有單獨的預處理器,但在處理預處理指令時如同存在乙個單獨的預處理器 這些指令用於輔助條件編譯。與 c 和 c 指令不同,不能使用這些指令建立巨集。預處理器指令必須是行上的唯一指令。c 語言的預處理器指令 if else elif endif define undef warnin...

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 ...