程序分为debug版本和release版本
1.断言是仅在debug版本起作用的宏
当断言的表达式为逻辑真时,程序才继续往下执行,否则,终止程序
2.何时用断言?assert和if的区别
if下,所有的情况都是合理的,每一种合理情况用if-else分别处理,例如栈不空时进行出栈操作,栈空时跳出循环;
而断言下,是程序中的错误,遇到时必须终止程序。当检测到为逻辑假时,意味着我们假设的错误出现了。
#include<iostream>
#include<assert.h>
using namespace std;
int main() {
int a;
while (cin >> a) {
assert(a); // assert(0 != a);
cout << 10 / a << endl<<endl;
}
return 0;
}