有问题的代码是“?something:something_else”。通常在下面的代码中,您可以放置I2C_SLAVE或I2C_SLAVE_FORCE。但是这段代码还有其他功能。它是如何工作的以及它到底做了什么?
if(ioctl(state.i2c_bus_address, force ? I2C_SLAVE_FORCE : I2C_SLAVE, add) < 0)
{
logger.fail("i2c select fail %d",add);
return -1;
}
答案 0 :(得分:6)
它被称为三元条件运算符。它就像一个if,但是内联。这是格式
boolean ? result evaluated to if true : result evaluated to if false
以下是一个例子:
y = x>2 ? 12 : 5;
如果x大于2,则y为12,否则y为5.
答案 1 :(得分:3)
它的名字是“条件运算符”。
condition ? expression1 : expression2
如果条件评估为true,则评估 expression1 ,否则评估 expression2 。
答案 2 :(得分:0)
不确定这是否是您所追求的,但statement ? if_true : if_false
控制流称为三元运算符。
评估statement
。如果是,则评估:
之后的表达式。否则,将评估:
之后的表达式。