我想知道是否有可能有一个变量后,返回其值?复合语句返回后更改值?
有问题的函数是一个私有布尔标志变量的简单get函数。我想这个标志的读取是破坏性的,所以我想:
bool myGet (context_t * someContext) {
return (someContext->flag) ? (someContext->flag = false) : false;
}
推理评估声明(someContext->flag = false)
的结果将是true
,但它似乎没有。
也许它的评估之前条件(someContext->flag)?
。
是否有任何其他方式来实现预期的功能,而不诉诸临时存储标志值,清除标志,然后返回临时副本?谢谢。
我喜欢这个不需要临时变量,并具有相同数量的分支 – Toby