首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >assert、-NDEBUG和分段故障

assert、-NDEBUG和分段故障
EN

Stack Overflow用户
提问于 2011-06-27 20:12:17
回答 1查看 763关注 0票数 3

我有一段相当大的代码,在开发版本中工作得很好,代码中有很多assert()。我用传递给g++的-DNDEBUG指令禁用了断言,现在我的代码用seg中断了。过错。关于assert()有什么我不知道的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-27 20:15:56

据我所知,assert最常见的问题是在assert本身中具有副作用的代码。当您使用-DNDEBUG编译时,断言基本上被注释掉了,因此断言中的代码不会被执行。assert手册页在bugs部分提到了这一点:

代码语言:javascript
复制
BUGS
       assert()  is implemented as a macro; if the expression tested has side-
       effects, program behavior will be different depending on whether NDEBUG
       is defined.  This may create Heisenbugs which go away when debugging is
       turned on.
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6492668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档