程式語言 C C 預處理指令

2021-06-06 07:51:01 字數 1807 閱讀 2449

由ansi的標準規定, 預處理指令主要包括: 

#define 

#error 

#if 

#else 

#elif 

#endif 

#ifdef 

#ifndef 

#undef 

#line 

#pragma 

由上述指令可以看出, 每個預處理指令均帶有符號"#"。下面只介紹一些常用指令。

1. #define 指令

#define指令是乙個巨集定義指令, 定義的一般形式是: 

#define 巨集替換名字串(或數值) 

由#define指令定義後, 在程式中每次遇到該巨集替換名時就用所定義的字串(或數值)代替它。 

例如: 可用下面語句定義true表示數值1, false表示0。 

#define true 1 

#define false 0 

一旦在源程式中使用了true和false, 編譯時會自動的用1和0代替。 

注意: 

1. 在巨集定義語名後沒有";" 

2. 在turbo c程式中習慣上用大寫字元作為巨集替換名, 而且常放在程式開頭。 

3. 巨集定義還有乙個特點, 就是巨集替換名可以帶有形式引數, 在程式中用到時, 實際引數會代替這些形式引數。 

例如: 

#define max(x, y) (x>y)?x:y 

main() 

上例巨集定義語句的含義是用巨集替換名max(x, y)代替x, y中較大者, 同樣也可定義: 

#define min(x, y) (x2. #error指令

該指令用於程式的除錯, 當編譯中遇到#error指令就停止編譯。其一般形式為: 

#error 出錯資訊 

出錯資訊不加引號, 當編譯器遇到這個指令時, 顯示下列資訊並停止編譯。 

fatal: filename linename error directive

3. #include 指令

#include 指令的作用是指示編譯器將該指令所指出的另乙個原始檔嵌入#include指令所在的程式中, 檔案應使用雙引號或尖括號括來。turbo c 庫函式的標頭檔案一般用#include指令在程式開關說明。 

例如: 

#include

程式也允許嵌入其它檔案, 例如: 

main() 

其中help.c為另乙個檔案, 內容可為 

printf("glad to meet you here!"); 

上例編譯時將按整合開發環境的options/directories/include directories中指定的包含檔案路徑查詢被嵌入檔案。

4. #if、#else、#endif指令

#if、#els和#endif指令為條件編擇指令, 它的一般形式為: 

#if 常數表示式 

語句段; 

#else 

語句段; 

#endif 

上述結構的含義是: 若#if指令後的常數表示式為真, 則編譯#if到#else之間的程式段; 否則編譯#else到#endif之間的程式段。 

例如: 

#define max 200 

main() 

5. #undef指令 

#undef指令用來刪除事先定義的巨集定義, 其一般形式為: 

#undef 巨集替換名 

例如: 

#define true 1 

... 

#undef ture 

#undef主要用來使巨集替換名只限定在需要使用它們的程式段中

6.#pragma

C C 預處理指令

預處理指令是以 號開頭的 行。號必須是該行除了任何空白字元外的第乙個字元。後是指令關鍵字,在關鍵字和 號之間允許存在任意個數的空白字元。整行語句構成了一條預處理指令,該指令將在編譯器進行編譯之前對源 做某些轉換。1.和 1 define pi 3.1415926 2 define paste n a...

C C 預處理指令

預處理指令 preprocessor directives define undef ifdef ifndef if endif else and elif line error include 預定義識別符號 pragma 預處理指令是我們寫在程式 中的給預處理器 preprocessor 的命令...

C C 編譯預處理指令

眾所周知,你的程式編譯前要做的事就是掃瞄源 對其做初步的轉換,產生新的源 提供給編譯器,這個過程就叫編譯預處理。這個處理過程由預處理器來完成,預處理器是在程式真正執行前由編譯器呼叫的預處理程式。常見的預處理有以下三種 include 是一種最為常見的預處理,主要是做為檔案的引用組合源程式正文。巨集替...