c語言預處理

2021-08-31 03:15:47 字數 1199 閱讀 5655

預處理可以包含

1、巨集定義指令

2、標頭檔案包括指令

3、條件編譯指令

4、編譯程式可以識別的特殊符號

巨集定義 #define、#undef

檔案包含 #include

條件編譯 #if、#ifdef、#else、#elif、#endif等

其他 #line、#error、#program等

注意事項:

1)在c語言中,凡是以「#」開頭的行,都成為「編譯預處理」命令列,它們可以根據需要出現在程式的任何一行的開始部位。

2)一條預處理命令列至少得佔一行。語句尾不加分號。

3)巨集名可以是任何合法的c語言標示符,只不過是通常用大寫字母。

4)巨集定義是「編譯預處理」命令,它們的替換過程在編譯時期就已經完成了,因此不會占用程式執行的時間。

巨集定義分為兩種:不帶引數的巨集定義和帶引數的巨集定義。

1、不帶引數的巨集定義

巨集可以巢狀定義

巨集的作用域(從定義到取消)

#define n 100

//巨集定義

#undef n

//巨集取消

在定義巨集時,如果巨集是乙個表示式,那麼一定要將這個表示式用()括起來,否則可能會引起非預期的結果。

#define  num1   10

#define num2 20

#define num num1 + num2

//(num1 + num2)

intmain()

//a = 60, b = 50

//加括號後a = 60,b = 90

2、帶引數的巨集定義
#define    識別符號(引數列表)     單詞串
#define  max(x, y)   ((x)>(y)?(x):(y))

//巨集引數和整體要用括號括起來

void main (

)//巨集展開:t = (a+b)>(c+d)?(a+b):(c+d);

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語言 預處理

預處理 下面介紹一些 c c 中幾個不常見卻有用的預編譯和巨集定義。error 語法格式如下 error token sequence 其主要的作用是在編譯的時候輸出編譯錯誤資訊token sequence,從方便程式設計師檢查程式 現的錯誤。例 include stdio.h int main i...