天天看点

C 语言经典面试题 —— 宏

无法解决 <code>cube(1+1) ⇒ 1+1*1+1*1+1 ⇒ 4</code>,期待的应当是 8,故将其改造为

如此,自身运算的优先级是能解决了,和其他表达式结合时便又存在先运算和后运算的算符优先级的问题,比如其前跟着一个除法运算符:

故我们期待的宏定义其实应当是一个整体: