C言語 デバッグ用エラー検出 - assert.h - [ assert, NDEBUG ]
2008.08.19 Tuesday | by LRESULT
assert.h (アサート) には、診断用のassert()マクロが宣言されており、
assert()の引数内で、『条件式が偽の場合に、プログラムが停止』します。
[例]
int x = 10;
assert( x > 5 );
は、スルー。
int x = 10;
assert( x < 5 );
の場合に停止し、エラーメッセージが表示されます。
また、assert.hをインクルードする前に、NDEBUGを定義すると
asset()マクロを無効に出来ます。
[例]
#define NDEBUG
#include <assert.h>
...
VisualStudioで、リリースビルドする場合は
通常、NDEBUGが定義されassert()は無視されます。
プロジェクトのプロパティ
┗ 構成プロパティ
┗ C/C++
┗ プリプロセッサ
┗ プリプロセッサの定義
で、確認出来ます。