这段代码是如何工作的以及它的名称

时间:2012-11-09 04:11:14

标签: c++ c i2c

有问题的代码是“?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;
}

3 个答案:

答案 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。如果是,则评估:之后的表达式。否则,将评估:之后的表达式。