C語言總結 預處理命令

2021-09-14 03:04:16 字數 1257 閱讀 8722

c語言總結:預處理命令

2019-3-30

預處理命令可以提高程式設計效率,但其不是c語句,編譯系統不能直接對它們進行編譯,而是在編譯前會轉換為c源程式,然後編譯時去掉了預處理命令。

1. 巨集定義

巨集定義在使用時,系統只是用巨集名之後的部分替換語句中包含的巨集名,如果是含參巨集定義,將實際的引數替換定義時字串中的對應引數。所以在寫巨集定義時要注意,巨集只是內容的替換,所以要嚴格遵守語法規則。

//無參巨集定義

# define pi 3.1415926

//含參巨集定義

# define s(a, b) a*b

area =s(

3,2)

;// area = 6

//限制巨集定義的作用於

# define pi 3.1415926..

.//pi 的有效範圍

# undef pi

2. 檔案包含

c源**常包含標頭檔案,也是一種預處理命令。

有兩種包含形式,尖括號、雙撇號:

#include

#include

"file.h"

二者區別在於,用尖括號時,系統到存方c庫函式標頭檔案的目錄中尋找要包含的檔案,這稱為標準方式。用雙撇號時,系統先在使用者當前目錄中尋找要包含的檔案,若找不到,再按標準方式查詢。

一般來講,如果呼叫庫函式而用#include 命令來包含標頭檔案,常用尖括號,以節省查詢時間。若包含的是使用者自己定義編寫的檔案,一般用雙撇號(不在當前目錄中的檔案需給出檔案路徑)。

3. 條件編譯

通過人為控制,使得程式中的部分內容在一定條件下才進行編譯,即對該部分內容指定編譯的條件。

幾種形式:

//1)若識別符號被定義過,編譯程式段

# ifdef 識別符號..

.# else..

.# endif

//2)若識別符號未被定義過,編譯程式段

# ifndef 識別符號..

.# else..

.# endif

//3)當表示式為真時,編譯程式段,可節省編譯所用時間。

# if 表示式..

.# else..

.# endif

程式示例:

#include

#define run

void

main()

C語言預處理命令總結

包含標準庫的標頭檔案建議用尖括號,包含自定義的標頭檔案建議用雙引號。如 include include myheader.h 巨集定義是用巨集名來表示乙個字串,在巨集展開時又以該字串取代巨集名,這只是一種簡單的替換。字串中可以含任何字元,可以是常數,也可以是表示式,預處理程式對它不作任何檢查,如有錯...

C語言 預處理命令

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

C語言 預處理命令

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