C 預處理器命令

2022-02-16 03:57:16 字數 666 閱讀 3664

在最開始接觸預處理指令時,是使用#region和#endregion,可以摺疊**塊,方便檢視。使用它可以將隸屬於乙個小模組的內容放到一起,摺疊起來,只有在檢視的時候再開啟,有強迫症的應該會很喜歡。看書剛好翻到了這,就把這部分記錄下來,給自己提個醒。

預處理器指令不會轉化為可執行**,而是影響**的編譯過程,可以有選擇性的進行編譯,這裡就有乙個條件編譯的概念。按我的理解,就是可執行檔案生成後,預處理器命令就不存在了,它影響的是生成可執行檔案的過程,它告訴編譯器哪些**需要編譯,哪些**不需要。它不會修改**的功能,但它可以在編譯階段指定哪一部分**進行編譯,也就是最終生成的可執行檔案中具有怎樣的功能。它的作用在編譯時得到體現。

#define和#undef:作用是告訴編譯器存在給定名稱的變數,也就相當於普通的變數定義,可以和其他命令一起完成條件編譯

#if,#elif,#else,#endif:通過判斷#define定義的變數,有選擇性的編譯**塊,從而達到條件編譯的目的

#line:改變編譯器在警告和錯誤資訊中顯示的檔名和行號資訊

#pragma:抑制或還原指定的編譯警告

總的來說,1,2,3條可以用來實現條件編譯。4摺疊**塊,56就目前而言,我沒看出來有多大的作用。

c#不止可以使用預處理命令完成條件編譯,但c#還可以通過conditional特性來實現,以現在來看,後種方式反而更是一種趨勢。

C 預處理器

偶爾翻c 的教材,看到了一些以前自己不太關注的角落。參考教材 c 大學教程 harvey m.deitel 和paul james deitel著。預處理發生在編譯之前,包括把其他檔案包含到要編譯的檔案中 定義符號常量和巨集 程式 的條件編譯以及預處理指令的條件執行。對應的,預處理指令有 檔案包含命...

C 預處理器

預處理器是一些指令,指示編譯器在實際編譯之前所需完成的預處理。所有的預處理器指令都是以井號 開頭,只有空格字元可以出現在預處理指令之前。預處理指令不是 c 語句,所以它們不會以分號 結尾。我們已經看到,之前所有的例項中都有 include指令。這個巨集用於把頭檔案包含到原始檔中。c 還支援很多預處理...

C 預處理器

預處理器是一些指令,指示編譯器在實際編譯之前所需完成的預處理。所有的預處理器指令都是以井號 開頭,只有空格字元可以出現在預處理指令之前。預處理指令不是 c 語句,所以它們不會以分號 結尾。我們已經看到,之前所有的例項中都有 include指令。這個巨集用於把頭檔案包含到原始檔中。c 還支援很多預處理...