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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/27 00:22:55
C语言中 define MVAL (13) 宏定义为什么要加一个括号啊?他和不加括号有什么区别吗?
xQNP&nĸ@[uBT)K#Ry!@?3s{Y N& ɝ9sf=sDG1Ncg  }z ̲``)0Sys` 4J.(PEY#6`DujH\7OMՐobw]ⓔ}߷kW#Xi:Lۺ /Y${j _f\*iQ5L[ 4:^%ªv5Gx;$bj6 J 0LkRo4YxDpcGb;,1mߧl\>U/'1n

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