1、案例
1.1、源码
1 2 3 4 5 6 7 8 9 10
| #include<stdio.h> int main() { int count = 3; int age[3] = {1,2,3}; for (int i = 0; i < 3; ++i) { printf("%d\n",age[i]); } }
|
1.2、运行结果

2、问题
虽然上述代码能够运行成功,但有一点不足之处,就是数组元素个数,发生改变时,要修改多处代码
3、宏定义
宏定义可理解为是声明一个常量
3.1、源码复写
1 2 3 4 5 6 7 8 9 10
| #include<stdio.h> #define COUNT 3 int main() { int age[COUNT] = {1,2,3}; for (int i = 0; i < COUNT; ++i) { printf("%d\n",age[i]); } }
|
3.2、好处
但发生元素个数改变时,则代码层面修改就比较方便
4、带参数的宏定义
4.1、源码
1 2 3 4 5 6 7 8 9
| #include<stdio.h> #define sum(v1,v2) ((v1)+(v2)) int main() { int a=10,b=20; int c = sum(a,b); printf("c=%d\n",c); return 0; }
|
4.2、运行结果

4.3、总结
带参数的宏定义比函数要高,理由是函数需要寻址,而宏定义只是替换