#define MIN(a,b) a<b?a:b

来源:3-8 第三章课后练习

邹正霖

2020-10-03

#define MIN(a,b) a<b?a:b 刚开始我这样为什么有错啊

写回答

1回答

quickzhao

2020-10-03

#define只是宏替换;如果MIN(1+2, 2+3) 就变成 1+2 < 2+3 ? 1+2:2+3    你想想会咋样。所以一般要加括号: #define MIN(a,b) (a)<(b) ?(a):(b)      宏替换还有一个问题就是不做语法检查,属于预编译行为,这点没有函数安全。

4
1
邹正霖
非常感谢!
2020-10-03
共1条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程