assert是一种预处理宏,由预处理器管理。因此,assert宏并不是定义在命名空间std中的。
1 预处理
在C++程序源代码被编译之前,由预处理器对C++程序源代码进行的处理。这个过程并不对程序的源代码进行解析,而是源代码分割或处理成为特定的符号以便支持宏调用。
2 assert宏的使用
2.1 头文件
assert宏在assert.h或者cassert中定义,在使用该宏时需要包含该头文件。
2.2 格式
assert宏的格式为
assert(表达式)
其中,当表达式为假时,assert输出信息并终止程序的执行;当表达式为真时,assert什么也不做。
int i = 1;
assert(2 == i);
assert()中的表达式为假,运行程序时会弹出如图1的窗口。
图1 assert()窗口