选择题
17.
下列选项中不会引起二义性的宏定义是______。
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最符合条件。
提交答案
关闭