作业帮 > 综合 > 作业

C语言中 define MVAL (13) 宏定义为什么要加一个括号啊?他和不加括号有什么区别吗?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/08/29 13:27:08
C语言中 define MVAL (13) 宏定义为什么要加一个括号啊?他和不加括号有什么区别吗?
#define MM (表达式)
调用的时候仅仅是简单替换.如果替换过后相邻的优先级高就先算后面的了.如:
#define MM a+b
s=MM*c;
替换过后就成为s=a+b*c;与我们想的s=(a+b)*c就 差大了,懂了吗?括号是起保护作用的