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

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

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就 差大了,懂了吗?括号是起保护作用的