1

プログラムで assert を使用しているときに奇妙な問題が発生しました。コードを追加してもプログラムが終了しませんassert(false)。しかし、assertサンプルコードを数行書くとうまくいきます。なぜそれが起こったのか知っている人はいますか?

4

2 に答える 2

25

あなたが持っている場合:

#define NDEBUG

これにより、すべてassertのが に変わりますnop

于 2013-09-06T11:15:17.180 に答える
1

コードの量に応じて動作が異なる場合は、NDEBUG定義していないと思います。コンパイラは単に冗長なコードをコンパイルしているだけだと思います。

環境に関する詳細が必要ですが、決定的な答えを出してください。

于 2013-09-06T11:21:37.287 に答える