源**指定了程式的定義,預處理指令(preprocessor directive)指示編譯器如何處理源**。
例如,在某些情況下,我們可能希望編譯器忽略一部分**,而在其他情況下,我們可能希望**被編譯。預處理指令給了我們這樣的選項。
在c和c++中有實際的預處理階段,此時預處理程式遍歷源**並且為之後的編譯階段準備文字輸出流,在c#中沒有實際的預處理程式。「預處理」 指令由編譯器來處理,而這個術語保留了下來
允許行尾注釋
在預處理指令所在的行不允許分隔符注釋
// 結尾沒有分號
#define premiumversion
// 正確
// 前面的空格
#define budgetversion
// 正確
// 中間有空格
# define mediumversion
// 正確
// 不允許分隔符注釋
#define premiumversion
/* all bells & whistles */
// 行尾注釋可以
#define budgetversion
// stripped-down version
指 令
含義概要
#define identifler
定義編譯符
#undef identifier
取消定義編譯符
#if expression
如果表示式是 true,編譯下面的片段
#elif expression
如果表示式是 true,編譯下面的片段
#else
如果之前的 #if 或 #elif 表示式是 false,編譯下面的片段
#endif
標記為乙個 #if 結構的結束
#region name
標記一段**的開始,沒有編譯效果
#endregion name
標記一段**的結束,沒有編譯效果
#warning message
顯示編譯時的警告訊息
#error message
顯示編譯時的錯誤訊息
#line indicator
修改在編譯器訊息中顯示的行數
#pragma text
指定有關程式上下文的資訊
C語言預處理
c語言中編譯預處理的三種形式的命令 巨集定義,檔案包含,條件編譯命令。1 巨集定義主要是 define,undef 如下 define pi 3.1415926 不帶引數的巨集定義 define max a,b a b?a b 帶引數的巨集定義 說明 巨集定義在c語言與c 語言中是相通的。下面舉例說...
C語言預處理
預處理 系統自動自動呼叫預處理程式對程式中 號開頭的預處理部分進行處理,處理完畢後可以進城源程式的編譯階段。預定義 一些預定義符號 常用於除錯 file 正在預編譯的源檔名 line 當前行號 只有這個是整數常量,其他是字串常量 function 當前所在函式名 date 當前日期 time 當前時...
c語言預處理
預處理可以包含 1 巨集定義指令 2 標頭檔案包括指令 3 條件編譯指令 4 編譯程式可以識別的特殊符號 巨集定義 define undef 檔案包含 include 條件編譯 if ifdef else elif endif等 其他 line error program等 注意事項 1 在c語言中...