status = (Hcill_state == HCILL_STATE_AWAKE)?GPIO_Request(GPIO_5,13):API_FAIL;
上面的代码和下面的代码等价吗?
if (Hcill_state == HCILL_STATE_AWAKE)
{
status = GPIO_Request (GPIO_5,13);
}
最佳答案
这两段代码并不等价,因为第一段代码无条件执行重新分配,而第二段代码仅在条件为真时才进行分配。
第一个代码的等效项将有一个 else
分支,将 API_FAIL
分配给 status
:
if (Hcill_state == HCILL_STATE_AWAKE)
{
status = GPIO_Request (GPIO_5,13);
}
else
{
status = API_FAIL;
}
关于if 条件到三元运算符的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43156188/