A-A+
下列选项中不会引起二义性的宏定义是()。A.#define S(x) x*xB.#defin
问题详情
下列选项中不会引起二义性的宏定义是()。
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最符合条件。