巨集定義:#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...