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)