assert

提供: RAD Studio
移動先: 案内検索

assert.h:インデックス への移動


ヘッダーファイル

assert.h

カテゴリ

診断ルーチン

プロトタイプ

void assert(int test);

説明

条件をテストし,場合によっては実行を中止します。

assert は,if 文に展開されるマクロです。test が 0 に評価された場合,assert マクロは次の _assert 関数を呼び出し,

void _RTLENTRY _EXPFUNC _assert(char * __cond, char * __file, int __line);

プログラムを中止します。_assert 関数は abort を呼び出し,stderr に次のメッセージを示します。

アサート失敗: %s ("%s",%d 行め)

このメッセージに示されている filename と linenum は,assert マクロが置かれているファイル名と行番号です。

ソースコードで,#include <assert.h> 指令の前に #define NDEBUG 指令(デバッグなし)を配置した場合,マクロは no-op に展開されます。つまり,assert 文がコメントアウトされます。

戻り値

なし。



  #include <assert.h>
  #include <stdio.h>
  #include <stdlib.h>
  struct ITEM {
     int key;
     int value;
  };
  /* リストに項目を追加し,リストが null でないことを確認する */
  void additem(struct ITEM *itemptr) {
     assert(itemptr != NULL);
     /* リストに項目を追加する */
  }
  int main(void)
  {
     additem(NULL);
     return 0;
  }



移植性



POSIX Win32 ANSI C ANSI C++

+

+

+

+