- 断言是宏而非函数
- 断言与正常错误处理
参考C++那些事-光城大佬的网站
上一篇-C++基础复习提升-常用写法类初始化列表
断言作用是如果它的条件返回错误,则终止程序执行,也就是不必等到程序生命周期结束时才会报bug。可以定义NDEBUG来关闭assert,但是需要在源代码的开头#include之前定义。
#include断言与正常错误处理#include "assert.h" using namespace std; int main() { int i = 100; // expression: i < 100 assert(i < 100); // 程序到上面的assert就终止了,不会运行下面的i++; i++; return 0; }
断言主要用于检查逻辑上不可能的情况。例如,它们可用于检查代码在开始运行之前所期望的状态,或者在运行完成后检查状态。与正常的错误处理不同,断言通常在运行时被禁用。
忽略断言
#define NDEBUG //在#include前加上这行才能生效,通知编译器assert不可用,在#include后面加则无效
// 断言不可用 #define NDEBUG #include#include "assert.h" using namespace std; int main() { int i = 100; // 因添加了#define NDEBUG 则忽略断言 assert(i < 100); i++; return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)