C++:断言(ASSERT)

ASSERT

为了防止程序猿自己写法错误导致的问题,就会使用断言,格式为

assert(condition);

condition为真,则不进行任何操作;

condition为假,则程序中断,打印导致此条件成立的信息。

int a = 0;
int b = 1;
assert(a!=0);
cout << b/a << endl;

STATIC_ASSERT

附带提示消息的断言,格式为:

static_assert(condition,tipString)

例如:

static_assert(!std::is_arithmetic<int>::value, "only supports arithmetic types");

关闭断言

#define NDEBUG
#include <assert.h>

关于啥时候用断言啥时候用异常,网上有这几种说法:

  • assert用在那些你知道绝对不会发生的事情上,属于绝对的人为错误,比如函数参数的形式错误等(即调用前),异常用于参数正常但结果异常的情况,比如执行后的结果不符合预期;

  • try-throw-catch无法关闭,assert可以通过关闭调试开关关闭,而且当机立断,执行快。

(网上很多说debug版本与release版本,release版本断言不生效,暂时还不知道是啥意思)

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值