问几个关于断言的问题
admin 发表于 2010-07-26 | 来源:互联网 | 阅读:

1. assert函数和ASSERT宏有什么区别?为什么我只能运行函数,宏的话就老失败?
2. assert failure到底是个什么错误?什么原因引起?

已经有5 个评论
  1. geqian5 说:

    去看《编程精粹》吧,

  2. lchz 说:

    正常情况下,你老婆是女人,你跟别人也是这样说的,当你老婆突然变成男人,就可以称为断言错误。

  3. sbamd 说:

    assert是C库函数,ASSERT是一个宏,很多SDK之类的都可能定义它,且有不同

  4. weiwei 说:

    1. assert函数和ASSERT宏有什么区别?为什么我只能运行函数,宏的话就老失败?assert是标准C++的东西,ASSERT是windows系统定义的宏。两者在参数上不同,打印信息也有区别。用起来区别不大。宏运行失败可能是没有包含相关头文件。2. assert failure到底是个什么错误?什么原因引起?在debug版本的程序中,可能使用了很多断言,为了快速定位bug。比如我在一段代码中,有一个“条件1”应该必然会成功,如果不成功,就是代码的问题,可能在距离这里很远的地方问题才爆发,那么定位起来就比较困难。如果加一个 assert(条件1),如果条件1不成立,就会弹出错误提示,就可以立刻知道是这里出了错误,方便定位。  

  5. dovemail 说:

    assert是一个 ISO C89/C99 的宏定义http://www.opengroup.org/onlinepubs/009695399/functions/assert.html

我要评论

评论功能因故关闭!

请加入我们的QQ群一起参与讨论:群号59400482(500人超级群)


返回首页 | 关于我们 | 联系我们 | 广告合作 | 网站地图 | 友情链接 | 版权声明