宏编程#define min(a,b)(a< b?a:b)

时间:2013-11-07 20:58:16

标签: c macros

我正在阅读宏,我想知道这个#define是做什么的?我不明白“?”和“:”。它是说如果一个

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

2 个答案:

答案 0 :(得分:5)

这不是一个宏功能,这是一个核心C功能,一个叫做条件运算符的三元运算符。

x = a < b ? a : b

基本上是:

if (a < b)
   x = a
else
   x = b

即:(cond ? a : b)如果a为真,则值为cond,否则为b

答案 1 :(得分:0)

?与宏没有关系,它是一个三元运算符。它类似于if-else运算符。

一个简单的例子:

c = (a < b ? a : b)

此代码表示当a<b为真时,a指定给c,如果a<b为false,则b指向c。 您可以通过谷歌搜索“三元运算符”来阅读更多内容。