C 中if和 if區別

2021-08-21 05:42:39 字數 1157 閱讀 7017

if的作用是程式流控制,會直接編譯、執行。

#if是對編譯器的指令,其作用是告訴編譯器,有些語句行希望在條件滿足時才編譯。

#if使您可以開始條件指令,測試乙個或多個符號以檢視它們是否計算為true。如果它們的計算結果確實為true,則編譯器將計算位於#if與最近的 #endif 指令之間的所有**。例如,

複製

#define debug

// ...

#if debug

console.writeline("debug version");

#endif

可以使用運算子 ==(相等)、!=(不相等)、&&(與)及 ||(或)來計算多個符號。還可以用括號將符號和運算子分組。

備註

使用#if以及 #else、#elif、#endif、#define 和 #undef 指令,可以包括或排除基於由乙個或多個符號組成的條件的**。這在編譯除錯版本的**或編譯特定配置時最為有用。

#if指令開始的條件指令必須用#endif指令顯式終止。

#define使您可以定義乙個符號,通過將該符號用作傳遞給 #if 指令的表示式,使該表示式計算為true

也可以用 /define 編譯器選項來定義符號。可以用 #undef 來取消定義符號。

/define#define定義的符號與具有同一名稱的變數不衝突。即,不應將變數名傳遞到預處理器指令,並且只能用預處理器指令計算符號。

#define建立的符號的範圍是在其中定義該符號的檔案。 示例

複製

// preprocessor_if.cs

#define debug

#define vc_v7

using system;

public class myclass

}

輸出

debug and vc_v7 are defined

C 中if和 if區別

c 中的 define預處理指令不能定義替換常數。該指令現在只能定義用於條件編譯的符號,為 if elif else及 endif所用。原始檔在進行編譯之前要進行一次檔案處理,這是由預處理器完成的。這種檔案處理只對原始檔進行文字處理而不進行任何編譯動作。所有預處理指令都以 符號開頭。預處理識別以下指...

C 中as 和 is 的區別

1.as在轉換的同時兼判斷相容性,如果無法進行轉換,則 as 返回 null 沒有產生新的物件 而不是引發異常。有了as就不要再用try catch來做型別轉換的判斷了。因此as轉換成功要判斷是否為null。2.as是引用型別型別的轉換或者裝箱轉換,不能用與值型別的轉換。如果是值型別只能結合is來強...

C和C 中const的區別

原文出自 一.c語言中的const const是c語言中保留的乙個關鍵字,它用來限定乙個變數是唯讀的,即不可變的。程式中使用const可以在一定程度上提高程式的健壯性,但是程式中使用過多的const,可能在對 的閱讀時增加一定的難度。1 用const修飾一般變數 注意在c語言中,用const修飾的變...