下列选项中不会引起二义性的宏定义是( )。

admin2012-12-03  44

问题 下列选项中不会引起二义性的宏定义是(    )。

选项 A、#define S(x)  x*x
B、#define S(x)  (x)*(x)
C、#define S(x)  (x*x)
D、#define S(x)  ((x)*(x))

答案D

解析 本题考查参数的宏替换。避免二义性有些参数表达式必须加括号,否则在实参表达式替换时,会出现错误。例如x为(m+n)时替换A:m+n*m+n,所以D最符合条件。
转载请注明原文地址:https://jikaoti.com/ti/x2B0FFFM
0

最新回复(0)