一、简单用法
使用宏定义标识符常量
格式: #define 宏名 常量
功能:宏名代替常量,宏名要求全大写且见名知义
注意:编译器会将宏原样替换
二、宏函数
#define 宏函数名(参数1,参数2) 表达式
定义宏函数时带括号
三、嵌入式开发常用宏操作 do...while(0)
解决方案:
<1>给if..else语句的语句块添加大括号
<2>宏使用do...while(0)语句防止编译出错
四.字符串化运算符# 如果在宏调用时,需要把参数转换为字符串去处理,需要在参数前添加#
五、不定参数宏
C99标准中规定,允许用户定义有省略号的宏。
省略号必须放在参数列表的后面,表示可选参数。
你可以用可选参数来调用这类宏。在代码中用...代表。他们被保存到__VA_ARGS__中
__VA_ARGS__ : 用于在宏替换部分中,表示可变参数列表