return model == DHT11 ? 0 : -40;
我相信它的意思是“如果在0和-40之间,返回模型”,但我想要一个明确的答案。
发布于 2015-11-20 04:10:46
它是ternary operator,相当于:
if (model == DHT11)
return 0;
else
return -40;因此,它与范围的检查无关。
三进制运算符产生一个值,即您也可以在如下所示的赋值中使用它:
retval = model == DHT11 ? 0 : 40;
return retval;发布于 2015-11-20 04:15:12
这个运算符(E1?E2:E3)称为三元运算符,其中E是表达式。
意思是:“如果E1为true,则返回E2,否则返回E3”
下面是cppreference的link,对此做了更多解释。
发布于 2015-11-20 22:56:16
如前所述,它被称为三元运算符。
三元运算符检查某些内容是否为真,如果是,则在:之前产生值。如果为false,则生成:之后的值。
在这种情况下,它检查model == DHT11的计算结果是否为真,如果是,则返回0。如果model == DHT11的计算结果为false,则返回-40。然后将三元计算得到的值提供给return,退出函数,并返回0或-40。
其他示例:
std::string hi = "hi";
std::cout << (hi == "hi") ? "string hi contains \"hi\"." : "string hi does not contain \"hi\"." << "\n";将打印:
string hi contains "hi".
常规语法:
bool ? value1 : value2
三元运算符就像一条if-else语句,被压缩到一行。
https://stackoverflow.com/questions/33813417
复制相似问题