BohYoh.comトップページへ  assert
C言語 標準ライブラリ アルファベット順索引 ヘッダ別索引 ホームページへ C言語講座のページ

C89  C99  C11  プログラム診断機能
assert
ヘッダ #include <assert.h>
形 式 C89 void assert(int expression);
C99 C11 void assert(スカラ型 expression);
機 能

assertマクロはプログラムに診断機能を付け加える。assertマクロを実行するとき、expression0である場合、assertマクロは、偽の値をもたらした特定の呼出しに関する情報を、処理系定義の書式で標準エラーストリームに書き込む。呼出しに関する情報には、以下の情報が含まれる。

  • 実引数のテキスト
  • ソースファイル名を表すマクロ__FILE__
  • ソース行番号を表すマクロ__LINE__の値
  • C99 C11 assert マクロの呼出しを字句的に囲んでいる関数の名前を含む識別子__func__の値
 以下に示すのが、出力の情報の形式の一例である:
C89    Assertion failed : 実引数のテキスト, file ファイル名, line 行番号
C99 C11    Assertion failed : 実引数のテキスト, function 関数名, file ファイル名, line 行番号
呼出しに関する情報の出力が終わるとabort関数を呼び出す。

なお、ソースファイル中に<assert.h>をインクルードする時点で、NDEBUGがマクロ名として定義されている場合、assertマクロは、実質的に何も行わない。

assertマクロは、関数ではなくマクロとして実装される。実際の関数にアクセスするためにマクロ定義を無効にした場合の動作は未定義である。

返却値 なし。


BohYoh.comトップページへ