ASSERT(3)

名前
assert - 診断が偽の時にプログラムを中止する

書式
#include <assert.h>

void assert (int expression);

説明
assert() 関数は、 expression が偽の時(すなわち、比較の結果が0と等しい時)に 標準出力にエラーメッセージを表示し、さらに abort() を呼び出すことによって、プログラムを終了させる。 これは、マクロ NDEBUG が未定義の時にのみ起こる。

返り値
値は返されない。

準拠
ISO9899 (ANSI C)

バグ
assert() は、マクロとして実装されている。すなわち、 試されている式が副作用を持っている場合には、 マクロ NDEBUG が定義されているかどうかに依存して、プログラムの振舞いは異なるだろう。 これは、バグ出しするときには消えてしまう ハイゼンバグ(Heisenbugs)を生み出すだろう。

関連項目
exit(3), abort(3)