assert
Assert.h:インデックス への移動
ヘッダー ファイル
assert.h
プロトタイプ
void assert(int test);
説明
条件をテストし、場合により実行を中止します。
assert はマクロで、if 文に展開されます。テストが 0 に評価された場合、assert マクロは _assert 関数を呼び出し、
void _RTLENTRY _EXPFUNC _assert(char * __cond, char * __file, int __line);
プログラムを中止します。_assert 関数は abort を呼び出し、stderr 上の次のメッセージを示します:
Assertion failed: test, file filename, line linenum
メッセージに表記されるファイル名および行番号は、assert マクロが現れたソース ファイル名および行番号です。
- define NDEBUG 指令("デバッグなし")をソース コードの #include <assert.h> 指令の前に配置した場合、マクロは no-op に展開され、それにより、assert 文はコメントアウトされます。
戻り値
[未指定]。
移植性
POSIX | ANSI C | ANSI C++ | Win32 | Win64 | OS X | |
---|---|---|---|---|---|---|
assert | + | + | + | + |
例:
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
struct ITEM {
int key;
int value;
};
/* add item to list, make sure list is not null */
void additem(struct ITEM *itemptr) {
assert(itemptr != NULL);
/* add item to list */
}
int main(void) {
additem(NULL);
return 0;
}