##### LibCrossライブラリ - デバッグ関数

# _ASSERT

ASSERTの出力

### 書式

      int _ASSERT( nFlag )
      int nFlag

### 引数

  nFlag | ASSERT発行フラグ

### 戻り値

  常に0

### 解説

  ASSERTの発行を行います。

  引数 nFlag は、ASSERT発行の評価のために用いられます。 引数に与えた演算式の評価結果が、偽(0)のときのみASSERTがホストに発行されます。 ホストはASSERTを受け付けると、ダイアログボックスを表示してユーザーの指示を待ちます。 次の３つの項目から選択してください。

  ボタン | 意味
  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_ */
  }

_ASSERT

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999