【小知识】在运行中查找错误——assert断言
1.什么是assert
在assert.h
头文件中定义了宏assrt()
,用于在运行时确保程序符合指定条件。如果不符合,就终止运行。
assert(p != NULL);
例如上面这段程序,验证p
是否是空指针。如果p
是空指针,那么就停止程序运行。否则就继续运行。
assert()
宏接受一个表达式作为参数。
- 当表达式为真,
assert()
不会产生任何影响,程序继续执行 - 当表达式为假,
assert()
会向stderr
标准错误流中写入一条错误信息,并终止程序运行
2.assert断言的好处
方便程序员检查程序中的错误,而且会自动显示报错的文件和报错代码所在行。并且只需要在文件前定义一个宏NDEBUG
就可以禁用文件中的所有assert
语句。示例如下:
#define NDEBUG // 注释掉就会启用程序中所有的断言语句
#include<iostream>
#include<assert.h>
using namespace std;
int main(){
int num = 5;
cin >> num;
assert(num == 5);
cout << num + 1 << endl;
return 0;
}
喜欢就订阅此专辑吧!
最后,制作不易,希望大家多多点赞收藏,关注下微信公众号,谢谢大家的关注,您的支持就是我更新的最大动力!
公众号上会及时提供信息学奥赛的相关资讯、各地科技特长生升学动态、还会提供相关比赛的备赛资料、信息学学习攻略等。