c語言的預處理命令

2021-09-29 21:36:10 字數 1636 閱讀 2110

1:巨集替換命令:

#define 識別符號 字串
編譯器每次遇到巨集替換命令所定義的識別符號時,都會用其後的字串替換該識別符號。

#define true 1

#define false 0

另一種用法叫做巨集代換。巨集名可以參量數每次遇到巨集名時,與之相連的形式引數均由程式中的實際引數代替。

#includeusing namespace std;

#define max(a, b) ((a >= b) ? a : b)

int main()

//cout << max(x, y) << endl; 相當於 cout << ((x >= y) ? x : y) << endl;

用巨集代換代替簡單的函式能加快程式執行速度,因為不存在函式呼叫的開銷,同時也提高了**的可讀性。

命令#undef用作取消已定義的巨集名代換。一般形式如下:

#define success 1

printf("%d\n", success);

#undef success

2:終止編譯命令

在除錯程式時,為了提高除錯速度,通常在源**的適應位置加入終止編譯命令#error

#error manual_stop //停止編譯,並且使得編譯器提示編譯錯誤資訊manual_stop
3:檔案包含命令

檔案包含常用語在編譯時插入另乙個源程式的內容。被包含檔案的名字必須使用雙引號或者<>包圍。

雙引號用於包含指定相對路徑的檔案,若未指明相對路徑,則會在當前原始檔所在的目錄內檢索。如果檔案沒有找到,則檢索標準目錄,不檢索當前工作目錄。尖括號用於包含標準函式庫檔案和使用者在編譯指令裡所指明的函式庫檔案,系統會在這些函式庫中搜尋指定檔案。

4:條件編譯命令

條件編譯命令是編譯階段的邏輯控制結構,通常利用條件編譯命令將同一源**

#include#includeusing namespace std;

#define x 23

#define y 435

int main()

#ifdef 與 #ifndef格式入下:

#ifdef 識別符號

**塊#endif

#ifndef 識別符號

**快#endif

#ifdef的作用是,當其後的識別符號存在時,執行相關**,而#ifndef的作用相反,其後識別符號不存在時,則執行相關**。

5:修改行好命令

修改行號命令#line可修改編譯器中所標識的原始檔行號和檔名資訊。編譯器在編譯時會為源**的行號編號,以便編譯時統計函式和指明警告或者錯誤的行號,同時將源**檔案在檔案系統中的檔名作為被編譯檔案的檔名資訊。每行的行號由編譯器預定義的巨集_line_表示,檔名資訊由預定義巨集_file_表示, 使用#line命令可修改這些資訊。#line命令的格式如下。

#line 行號["檔名字串"]

#line 200[count]

main() //201

//205

C語言 預處理命令

我們可以在c源程式中插入傳給編譯程式的各中指令,這些指令被稱為預處理器指令,它們擴充了程式設計的環境。現把常用的預處理命令總結如下 1.預處理程式 按照ansi標準的定義,預處理程式應該處理以下指令 if ifdef ifndef else elif endif define undef line ...

C語言 預處理命令

一 巨集定義 在 語言源程式中允許用乙個識別符號來表示乙個字串,稱為 巨集 被定義為 巨集 的識別符號稱為 巨集名 在編譯預處理時,對程式中所有出現的 巨集名 都用巨集定義中的字串去代換,這稱為 巨集代換 或 巨集展開 巨集定義是由源程式中的巨集定義命令完成的。巨集代換是由預處理程式自動完成的。在 ...

C語言預處理命令

以 開頭的預處理命令。如 include,巨集定義命令 define pi 3.1415926等。在源程式中這些命令都放在函式之外,而且一般放在原始檔前面,它們稱為預處理部分。無參巨集定義 無參巨集的巨集名後不帶引數。其定義的一般形式為 define 識別符號 字串 其中的 表示這是一條預處理命令,...