C言語の標準ヘッダassert.hについて記述しています。assert.hは、プログラム診断機能を提供します。assert.hを使用することにより、デバッグが容易になります。
assert.hでは、assertマクロが定義されています。
assertマクロは関数形式マクロで、引数に偽(すなわち0)が指定されると、ソースファイル名や行番号等の情報を標準エラー出力に出力し、プログラムを終了させます。プログラマは、assertマクロが出力する情報をもとにデバッグを行います。
NDEBUGマクロが定義されていると、assertマクロは、次のように定義され、何もしません。
#define assert(ignore) ((void)0)
assertマクロは、assert.hが取り込まれる度に、その時点でのNDEBUGの状態にしたがって再定義されます。また、assertマクロの仕様はこちらとなります。