このヘッダの目的
<assert.h>は、プログラムの診断に使われるマクロを定義する。
定義済み識別子
働き
NDEBUGは、このヘッダの中で定義されるものではない。プログラマが、このヘッダをインクルードする前に定義するものである。
NDEBUGが定義されていると、assertマクロは効力を持たない空文に置き換えられる。
assertマクロは、このように使われる。
assert(expression)
ここでexpressionとはint型の表現である。
このマクロは、expressionが偽(0と等しい)ならその診断メッセージを標準エラー出力に出力し、
プログラムをabort()によって中断する。
出力される診断メッセージは、assertのあるファイル名、行番号、expressionの文字列などを教えてくれるので、デバッグに便利である。