[英]Breaking out from generating windows in infinite loop
在我的程序中,我做了一個明顯的錯字
for(int i = 0; i<mNoOfCores; i+3)
代替
for(int i = 0; i<mNoOfCores; i++)
不幸的是,在循環中我正在生成QT5窗口。 因此,我的Ubuntu系統被絕對拒絕,只能在重啟電源后才能重新啟動。 (鼠標反應靈敏,鍵盤也可能如此。)有沒有更好的方法? 或者,以這種方式我可以拒絕應用程序中的操作系統?
編譯器無法提前通知您有關無限循環的信息。 這在很多地方都在這里 , 這里 , 這里討論 。
您可以做的是使用簡單的“雙重檢查”來防止自己掛起操作系統。 例:
int totalNoWindowsCreated = 0; // keep track of windows created OK
for(int i = 0; i<mNoOfCores; i+3)
{
// Create window
totalNoWindowsCreated++; // If created OK
assert(("Bug !", totalNoWindowsCreated <= mNoOfCores)); // Check
}
更新:當然,您可以在斷言條件下犯錯誤,在這種情況下,請稍事休息並喝咖啡:)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.