天天看点

C++断言assert

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、QQ技术交流群(183198395)。

C++断言assert
C++断言assert
C++断言assert

assert宏是在标准库中提供的。它在库文件<cassert>中声明,它可以在程序中测试逻辑表达式,如果指定的逻辑表达式是false,assert()就会终止程序,并显示诊断消息。关闭断言使用#define NDEBUG,该语句会忽略转换单元中的所有断言语句。而且这个指令仅放在#include <cassert>之前才有效。示例如下:

#include <iostream>
#define NDEBUG //关闭断言
#include <cassert>
using std::cout;
using std::endl;

int main(){
	int x=0;
	int y=5;
	for(x=0;x<20;x++){
		cout << "x= " << x << " y= "<<y<<endl;
		assert(x<y);
	}
	return 0;	
}