21.21 assert() 是什麼?怎樣用它?

這是個定義在 <assert.h> 中的宏, 用來測試斷言。一個斷言本質上是寫下程序員的假設, 如果假設 被違反, 那表明有個嚴重的程序錯誤。例如, 一個假設只接受非空 指針的函數, 可以寫:
    assert(p != NULL);

一個失敗的斷言會中斷程序。斷言不應該用來捕捉意料中的錯誤, 例如  malloc() 或 fopen() 的失敗。

參考資料: [K&R2, Sec. B6 pp. 253-4]; [ISO, Sec. 7.2]; [H&S, Sec. 19.1 p. 406]。

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)