【发布时间】:2013-02-10 08:39:00
【问题描述】:
我是一名学生,我的老师给了我并且已经解决了学习的练习,在他的练习中我看到了这一行:
#define MIN(a,b) ((a) < (b) ? (a) : (b))
我以前从未使用过#define。
我不明白是什么:
((a) < (b) ? (a) : (b))
代表。
看起来像“?”是一个比较不确定。有人可以帮帮我吗?
【问题讨论】:
-
这是一个包含三元运算符的宏。这两个主题都将包含在任何关于 C 的教科书中。
-
请注意在宏的“扩展”中每次使用参数(宏中的
a andb`)周围使用(和)- 插入为文本替换(这是预处理器对它在代码中找到的每个对 MIN( a, b ) 的引用所做的事情。这是为了避免当一个宏嵌套在另一个宏中或包含如果不包含可能被误解的表达式时的不良影响展开时说(和)...!
标签: c++ c max c-preprocessor min