一、#define 定义常量
工作机理:直接替换,以下列代码为例编译器直接将用到max的地方替换为100
#define max 100 int main() { int arr[max] = { 0 }; int a = max; return 0; }
二、#define 定义宏
工作机理:直接替换,以下列代码为例,编译器直接将用到Add (x,y) 的地方替换为 x + y;将用到 print(x)的地方替换为 printf("%d\n",x) ,相比于函数执行速度更快
注意:定义宏没有实参有形参的说法,参数也没有类型
#define Add(x,y)(x+y) #define print(x)(printf("%d\n",x)) int main() { int a = Add(3, 5); printf("%d\n", a); print(a); return 0; }