C語言程式設計 9,預處理命令

2021-08-20 05:39:02 字數 1131 閱讀 6261

以「#」開頭的預處理命令一般都放在函式之外,而且一般放在原始檔前面,他們成為預處理部分。

預處理指的是進行編譯的第一遍掃瞄(語法掃瞄和語法分析)之前所作的工作。它由預處理程式負責完成。當對乙個原始檔進行編譯時,系統自動引用預處理程式對預處理部分進行處理,處理完畢後自動進入對源程式的編譯。

c語言的預處理功能主要有:

用乙個識別符號來表示字串,稱為「巨集」,識別符號稱為巨集名。在編譯預處理階段,所有巨集名會被巨集定義中的字串替代,稱為「巨集展開」或「巨集代換」。巨集分為無參巨集和有參巨集。

巨集名後不帶引數

格式:#define 識別符號 字串

字串可以是常數、表示式、格式串,為了巨集代換不出現錯誤,字串最好加括號

巨集定義作用域為巨集定義命令到源程式結束,可以用#undef提前終止作用域

帶參巨集定義

格式:#define 巨集名(形參表)    字串

作用是把指定檔案插入命令列位置取代命令列,從而把指定檔案和當前源程式檔案連成乙個原始檔。

格式:#include "檔名"

#include 《檔名》

使用<>表示在包含檔案目錄中去查詢(包含目錄是使用者在設定環境時設定的),而不在源檔案目錄查詢。

使用「」表示首先在當前的源檔案目錄中查詢,若未找到才到包含目錄中去查詢。

條件編譯功能可以按不同的條件去編譯不同的程式部分,因而產生不同的目標**檔案。對於程式的移植和除錯很有用。

三種形式

1、

#ifdef 識別符號

程式段1

#else            //若程式段2為空,則可以省略

程式段2

#endif

2、

#ifndef 識別符號    //if no define

程式段1

#else //若程式段2為空,則可以省略

程式段2

#endif

3、

#ifdef 常量表示式  //根據常量表示式的值判斷

程式段1

#else //若程式段2為空,則可以省略

程式段2

#endif

C語言 預處理命令

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

C語言 預處理命令

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

C語言預處理命令

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