assert( expression )
関数型マクロ assert() は式 expression が 偽 の場合に診断メッセージを表示して関数 abort() を呼び出します。
assert() マクロは簡単な論理エラーを検出するために役立つ道具の一つです。 // 例えば引数にポインタ NULL を認めない関数の先頭で引数の仮定を検査するために // ポインタ p は NULL ではないはずだ! assert( p ); // ストリーム fp の現在位置はファイル終端ではないはずだ! assert( !feof( fp ) ); // 数 a と数 b の合計は INT_MAX を超えないはずだ! assert( INT_MAX - a >= b ); // 例えば switch 文の default ラベルなどで // この文は実行されないはずだ! assert( !"想定外のケース" ); // 文字 c は大文字であるはずだ! assert( isupper( (unsigned char)c ) ); // 添字 index は配列 array の添字として妥当なはずだ! assert( ( 0 <= index ) && ( index < numof(array) ) ); // 例えば関数 strcat() のように2つの文字列が重複していてはいけない関数で // 2つの文字列引数 str1, str2 は異なる文字列を指しているはずだ! assert( (str1 > strtail( str2 )) || (str2 > strtail( str1 )) );
注意 関連 | |