int _ASSERT( nFlag ) int nFlag
nFlag | ASSERT発行フラグ |
引数 nFlag は、ASSERT発行の評価のために用いられます。 引数に与えた演算式の評価結果が、偽(0)のときのみASSERTがホストに発行されます。 ホストはASSERTを受け付けると、ダイアログボックスを表示してユーザーの指示を待ちます。 次の3つの項目から選択してください。
ボタン | 意味 |
Yes | プログラムを終了させ、CodeScapeの _ASSERT行にカーソルを移動する |
No | ASSERTを無視し、プログラムの実行を継続する |
Cancel | ダイアログボックスをキャンセルし、すべてのASSERTを進める |
CodeScapeの[Tools]メニューの[Option...]で表示される[Global Options]ダイアログボックスで、 ステータスの表示とセット、およびすべて無視をコントロールすることができます。
コンパイラは、次に続く_ASSERTインストラクションの上でCodeScapeを止めるためのコードを生成します。
以下のサンプルプログラムは _ASSERT行で止めることを確実にするマクロを含んでいます。
また、このプログラムではすべてのASSERT行をいっぺんに無効にするように記載されています。
{
/*
* Macro Redefinition of _ASSERT to ASSERT. This is performed to cause the
* compiler to insert at least one opcode after the jsr _ASSERT has returned
* it also permits the ASSERT code to be included / removed based on a
* compiler define.
*/
#ifdef _DEBUG_BUILD_
/* Since _ASSERT always return zero the expression will only be evaluated once */
#define ASSERT(X) while(_ASSERT(X)){ ; }
#else
#define ASSERT(X)
#endif /* _DEBUG_BUILD_ */
}