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++
      ┗ プリプロセッサ
         ┗ プリプロセッサの定義

で、確認出来ます。


カテゴリ:C言語 assert.h | 23:34 | comments(1) | trackbacks(0) | -


| 1/1PAGES |