带参宏定义的编译预处理第二题编译预处理后为什么会变成,预处理命令会把括号换成指定的符号吗,那如果想让结果等于19该怎么写
如果要结果等于19,则需要修改一下宏M的书写方式,即将:#define M(x,y,z) x*y+z修改为:#define M(x,y,z) (x)*(y)+(z)或修改为(这是比较规范的):#define M(x,y,z) ((x)*(y)+(z))在手机上用易历知食软件里的微C程序设计来验证一下,手机上代码如下图:
手机上运行的结果如下图:
那如果写成M( (a+b),(b+c),(c+a) ) 结果就是19了吧