当前位置: 首页> 游戏> 手游 > 上海最新疫情最新消息_建筑模板尺寸规格表_网站搜索引擎推广_网站排名优化培训

上海最新疫情最新消息_建筑模板尺寸规格表_网站搜索引擎推广_网站排名优化培训

时间:2025/7/9 7:38:03来源:https://blog.csdn.net/iqanchao/article/details/145678966 浏览次数:0次
上海最新疫情最新消息_建筑模板尺寸规格表_网站搜索引擎推广_网站排名优化培训

基础介绍

断言(assert)功能是从C语言基础而来的一个功能,在早期的c++98版本就已经存在,直到c++11版本引入了静态断言(staic_assert)功能。

断言是一种在程序中检查条件的机制,当断言的条件为假时,程序会立即终止并提供相关信息

断言的分类:

  1. 静态断言
  2. 运行时断言

其中静态断言与C++11版本引入,静态断言的使用方法如下所示:

// 编译时检查
static_assert(condition, message);

注意:静态断言的核心是在编译阶段生效,常用来判断常量表达式,比如在编译阶段判断平台的架构是否64位或判断大小端是否与预期一致等。例子如下所示:

// 1. 类型大小检查
static_assert(sizeof(int) == 4, "Int must be 4 bytes");
//平台检查
static_assert(sizeof(void*) == 8, "Must be 64-bit platform");

运行时断言的含义是在程序运行阶段进行判断,而非编译阶段进行判断。如果断言条件为假,则层序会立即终止,而不会抛出异常

注意事项

  • 对于运行时断言,可通过设置NDEBUG编译选项关闭运行时段断言,所以在运行时断言仅做条件判断,不做任何其他运算。请看下面的例子:
//错误做法
assert(counter++ > 0, “counter not large 0"); //assert可能不会运行,所以counter++不会进行计算,如果后代码的依赖与counter计算后的结果,则可能会发生错误。//正确做法
counter++;
assert(counter > 0, “counter not large 0");//c++17写法
assert(counter++ > 0);  //第二个参数可以省略
  • 静态断言无法被关闭,当静态断言条件为假时,会导致编译终端,并将错误信息输出到编译输出界面
  • 运行时断言一般用于开发阶段,很多工程场景下会关闭运行时断言,而是将断言替换为异常处理。
  • 在c++17版本,断言可以不输入第二个参数,即具体错误的字符串部分
关键字:上海最新疫情最新消息_建筑模板尺寸规格表_网站搜索引擎推广_网站排名优化培训

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: