C語言基礎學習筆記 巨集

2021-10-01 13:22:44 字數 1233 閱讀 7242

巨集定義:#define用來定義乙個識別符號和乙個字串,用這個識別符號替代這個字串。

1.不帶引數的巨集定義

#define 巨集名 字串

①#表示這是一條預處理命令;

②巨集名,是乙個識別符號,要符合識別符號的命名規則,並要求大寫;

③字串的位置可以是常量、表示式、格式字串

注意:巨集定義不是語句,不需要在末尾加分號;在編寫程式時,通常將所有的#define放到檔案開頭的位置。

#undef的作用:結束巨集定義的作用域。

比如:

#define test "this is an example"

int main()

2.帶引數的巨集定義:不是簡單的字串替換,還要進行引數替換

定義形式:#define 巨集名(引數列表) 字串

#define mix(a,b) ((a)*(b)+(b))	//一定記得加括號,不然容易出錯,因為程式在替換字串時,系統不會加括號,運算優先順序有時就會出錯

#define sum(a,b) ((a)*(b))

int main()

3.條件編譯的三種形式

第一種形式:

#include#define win

int main()

第二種形式:

#ifndef 識別符號

程式段1;

#else

程式段2;

#endif

與第一種形式的區別是將ifdef改為ifndef,它的功能是如果識別符號未被定義,則對程式段1進行編譯,否則編譯程式段2,與第一種相反。

第三種形式:

#if 常量表示式

程式段1;

#else

程式段2;

#endif

如果常量表示式的值為真,則對程式段1進行編譯,否則編譯程式段2,因此可以使程式在不同條件下,完成不同的功能。

注意:上面的條件編譯都可以用條件語句if-else實現,但用條件語句將會對整個源程式進行編譯,生成的目標**較長,而採用條件編譯,則根據條件只編譯其中的程式段1或程式段2,生成的目標**較短。如果進行條件選擇的程式段很長,採用條件編譯可以大大提高程式的執行效率。

巨集定義 C語言基礎學習筆記

define include ifndef define maxszie 10000帶引數的巨集 define add x,y x y define plus x,y add x,y define add x,y x y 呼叫 plus plus a,b c 呼叫結果 就是按照順序巢狀 最終 c b...

c語言基礎 巨集

在 c 語言中,可以採用命令 define 來定義巨集。在定義了巨集之後,無論巨集名稱出現在源 的何處,預處理器都會把它用定義時指定的文字替換掉。define 巨集名稱 替換文字 define print printf hello world define 巨集名稱 形參列表 替換文字 define...

C語言程式設計 學習筆記 巨集定義

編譯預處理指令 開頭的是編譯預處理指令 它們不是c語言的成分,但是c語言程式離不開它們 define用來定義乙個巨集 如 define pi 3.14159這樣pi這個東西就是3.14159的值 在編譯過程中,計算機會把 中出現的pi全部換成3.14159 也可以有如下定義 define forma...