编写代码时,我们总会做出一些假设,断言就是用在代码中捕获这些假设。断言表示为一些布尔表达式,我们相信在程序中的某个特定点该表达式的值为真,可以在任意时刻启用和禁用断言来验证。
举个例子,在离散数学中有个德摩根定律,我们在C++语言中可以验证:
1 |
|
这种代码方式在开发中并不常见,而是使用以下断言的方式:
1 |
|
在这个程序中,并不会有任何输出结果,但是程序正常运行。
假如assert()函数中表达式出错,整个程序在运行的时候就会报错,并指出哪里出了问题。
所以今后在我们开发的时候可以运用这一特性,完成开发测试用例的编写:
1 | assert(函数返回值 == 预期结果); |
只要函数运行符合预期结果,程序正常运行,一旦不符合就会出错。
注意assert()不是函数,而是一个宏定义。