A-A+

下列选项中不会引起二义性的宏定义是()。A.#define S(x) x*xB.#defin

2022-08-05 22:50:46 问答库 阅读 173 次

问题详情

下列选项中不会引起二义性的宏定义是()。
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最符合条件。

考点:定义