我正在阅读宏,我想知道这个#define是做什么的?我不明白“?”和“:”。它是说如果一个
#define min(a,b) (a < b ? a : b)
答案 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。
您可以通过谷歌搜索“三元运算符”来阅读更多内容。