[英]Qt while loop not working as expected
我有一個while循環並且基於標志循環將終止,但即使在使標志為真循環之后也不會退出。
在調試模式下,它工作正常,在發布模式下,qDebug 也工作正常。 如何追蹤這個問題
while (1)
{
if(isFlagUpdated)
{
isFlagUpdated = false;
break;
}
qDebug()<<"Running while loop";
}
如果我刪除qDebug()<<"Running while loop";
它不在發布模式下工作
編譯器可能會檢測到“isFlagUpdated”不應更改,並優化您的代碼。
您可能希望將“isFlagUpdated”聲明為 volatile 以避免這種行為。
為什么不在循環條件中使用你的標志?
此循環將一直運行,直到 isFlagUpdated 為真。
While(!isFlagUpdated) {
qDebug() << "Running while loop";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.