我想知道是否有可能有一個變量後,返回其值?複合語句返回後更改值?
有問題的函數是一個私有布爾標誌變量的簡單get函數。我想這個標誌的讀取是破壞性的,所以我想:
bool myGet (context_t * someContext) {
return (someContext->flag) ? (someContext->flag = false) : false;
}
推理評估聲明(someContext->flag = false)
的結果將是true
,但它似乎沒有。
也許它的評估之前條件(someContext->flag)?
。
是否有任何其他方式來實現預期的功能,而不訴諸臨時存儲標誌值,清除標誌,然後返回臨時副本?謝謝。
我喜歡這個不需要臨時變量,並具有相同數量的分支 – Toby