主要是完成一个代码替换的功能,只是替换的功能,中间不进行任何数据计算的操作;
能加括号就加括号,以免替换方式的时候计算出问题;
不带参数宏:
#define m (n)
#define c ((m)+(m))
带参宏:
#define sum(x,y) ( x )+(y)
带参宏实现多句代码:#define sum(x,y) do{ ( x )+(y)\
prinf("%d",x); \
prinf("%d",x); \}while(0)
\ 表示多句代码在一句,带参宏多句代码用do,while链接起来
函数和带参宏的区别:
函数有参数类型和返回值,调用的概念;
带参宏只是代码的替换(不是赋值);
带参宏会让程序的体积增大;函数不会
函数传参会占用资源开销,增大程序运行时间
带参宏没有传参调用的过程,程序运行速度更快;
带参宏用于封装比较简短的代码;