void assert (int expression);
expression如果為true,則什麼事都不會發生,如果為false,則會發生則會在stderr寫出錯誤訊息,且程序會立刻跳出
main.c
/* assert example */
#include <stdio.h>
#include <assert.h>
int main ()
{
FILE * datafile;
datafile=fopen ("file.dat","r");
assert (datafile);
fclose (datafile);
return 0;
}
另外, 若在程式執行前, 有定義NDEBUG的話, 就不會執行assert
在linux下就用以去指令去編譯
$ gcc main.c -DNDEBUG
錯誤訊息的格式會是像下面這樣
Assertion failed: expression, file filename, line line number
參考資料:
斷言(Assertion)
assert
assert - C++ Reference
沒有留言:
張貼留言