簡體   English   中英

Qt while 循環未按預期工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM