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