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

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 18:31:00
C语言中 define MVAL (13) 宏定义为什么要加一个括号啊?他和不加括号有什么区别吗?

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

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