✏️ 纠错
第 247 题 / 共 276 题
第6 题 #define SQUARE(x) x * x 是一个安全的宏定义,SQUARE(2+3)会正确计算出 25。
你真棒!
📝 题目解析
【参考答案】错误
【参考解析】题面描述不正确,这个宏定义并不安全,SQUARE(2+3)不会得到正确结果25。原因在于宏定义只是简单的文本替换,不会自动添加括号来保证运算优先级。当使用SQUARE(2+3) 时,实际展开后是:2 + 3 * 2 + 3,要让这个宏定义安全,应该为参数和整个表达式都加上括号:#define SQUARE(x) ((x) * (x))
【参考解析】题面描述不正确,这个宏定义并不安全,SQUARE(2+3)不会得到正确结果25。原因在于宏定义只是简单的文本替换,不会自动添加括号来保证运算优先级。当使用SQUARE(2+3) 时,实际展开后是:2 + 3 * 2 + 3,要让这个宏定义安全,应该为参数和整个表达式都加上括号:#define SQUARE(x) ((x) * (x))