断言
简介
在程序设计中,断言(assertion)是一种放在程序中的一阶逻辑(如一个结果为真或是假的逻辑判断式),目的是为了标示与验证程序开发者预期的结果-当程序运行到断言的位置时,对应的断言应该为真。若断言不为真时,程序会中止运行,并给出错误消息。
C++断言包含运行期检查断言、静态断言
- 运行期检查的断言
在程序运行时,可以用断言检查程序开发时的假设,确认这些假设是否成立。
存在先天的缺点:可能有改变存储器数据或是线程时序的风险,因此需小心的处理断言,确认断言在程序中没有其他的副作用。 - 静态断言(c++11以上,static_assert)
只在编译期间检查的断言称为静态断言,静态断言必需配合清楚的注解说明。
介绍static_assert
程序结构中的断言有助于在不使用第三方程式库的情形下,应用测试驱动开发的开发方式。
示例
运行时期检查的断言
- 头文件:
所需引用头文件 | 基本用法 |
---|---|
assert.h(C语法)、cassert(C++) | assert(bool_constexpr) |