C語言 預處理作用與巨集定義

2021-10-23 18:30:08 字數 814 閱讀 1249

1.程式的預處理過程就是將預處理指令(可以簡單理解為#開頭的正確指令)轉換為實際**中的內容(替換)

2.#include,這裡是預處理指令,包含標頭檔案的操作,將所包含標頭檔案的指令替代

3.如果標頭檔案中包含了其他標頭檔案,也需要將標頭檔案展開包含

1.# define 新的標識 舊的標識

注意這裡加不加分號,需要根據特定的情況判斷

用 新的標識 替換被標識的內容

2.巨集定義不占用記憶體,全域性變數占用記憶體

3.為避免對優先順序由影響需要對替換單元加括號(),以保證優先順序計算

#define 

//巨集定義,也是預處理指令

例:#define pi 3.14

#define name 「張三」

輸出:3.14+3,張三

只做簡單的替換

注:巨集定義之後,值不可改變,如pi的值只為3.14

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

注:a,b可以是乙個變數也可以是表示式,為保證優先順序加括號

#define  sum (a,b) a+b

sum(10,100)*6

結果為10+100*6=610

而不是(10+100)*6=660

注:巨集定義只做簡單的替換,不會計算優先順序問題

若保證優先順序,巨集定義時需加小括號

如:#define sum (a,b) ((a)+(b))

C語言 巨集定義,預處理巨集

巨集是學習任何語言所不可缺少的,優秀的巨集定義可以使得 變得很簡潔且高效,有效地提高程式設計效率。巨集是一種預處理指令,它提供了一種機制,可以用來替換源 中的字串,直譯器或編譯器在遇到巨集時會自動進行這一模式替換 c語言有簡單的巨集系統,由編譯器或彙編器的預處理器實現。c的巨集預處理器的工作只是簡單...

c語言預處理 巨集定義

個人筆記 巨集定義對於用c語言程式設計的人是經常用,這裡只講使用中需注意的問題點和方便的用法。1.巨集擴充套件中空格對擴充套件結果的影響 define a y a expanded y a x 被擴充套件為 a expanded x define a y a expanded y a x 被擴充套件...

C語言 預處理和巨集定義

今天分享一點c語言的預處理還有巨集相關的內容。目錄 預處理和巨集定義 一 乙個c程式的誕生 1 預編譯階段 c i 2 編譯階段 i s 3 彙編階段 s o 4 鏈結階段 該程式的所有.o exe 1 c語言中部分內建巨集 2 巨集的功能 1 使用巨集定義常量 2 使用巨集重新命名運算子 3 使用...