我已經搜索,但無法找到(或如果)我可以在xcode 4/ios 5.0中的c assert()之後跨越或繼續。我正在使用C++而不是objective-c。我是否需要定義自己的斷言才能實現這一目標?如何在ios/xcode中聲明c後繼續執行或繼續執行?
謝謝〜
我已經搜索,但無法找到(或如果)我可以在xcode 4/ios 5.0中的c assert()之後跨越或繼續。我正在使用C++而不是objective-c。我是否需要定義自己的斷言才能實現這一目標?如何在ios/xcode中聲明c後繼續執行或繼續執行?
謝謝〜
斷言通常不會被忽略。他們在那裏讓程序員與其他程序員溝通,「這永遠不會發生」。如果您好奇如果繼續經過斷言會發生什麼情況,請將其註釋掉並查看您的程序在通常失敗後的行爲。
的assert()
S中的目的是停止執行(和/或把你扔到一個調試器),當被斷言條件爲假。因此,它不會在斷言之後「繼續」,因爲它表示違反了某些先決條件/不變條件,這些條件/不變條件總會導致後來的不良事件(tm)。
「assert(expr)」只是(NDEBUG未定義)的簡寫形式「if(expr == 0)abort();」。也許這是一個比使用assert更好的方法(沒有放棄())。
需要更多信息。斷言檢查什麼?斷言是在你的代碼中還是在你鏈接的代碼中? –
您的應用程序是否停止在'assert()'中運行? – Nekto
如何編譯NDEBUG? – stefaanv