作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我正在某些设备上编程。有一些带有此类代码的示例:
Verify(SomeFunc(argc, argv) == SDK_OK);
Verify(SomeOtherFunction(&st_initialData) == SDK_OK);
Verify(SomeOtherFunction2(x,y) == SDK_OK);
在文档中,Verify 被定义为“类似于”断言。
我的问题是:如果我在 Release
模式下构建我的项目,上述语句会发生什么情况?他们会失去权力吗? Verify
是否仍然有效?
为了避免上面可能出现的问题,我是否必须用这样检查返回值来替换上面的代码?:
if(SomeFunc(argc, argv) == SDK_OK)
{
// we are fine
}
else
{
// handle error somehow, such that it is also available in Release mode
}
最佳答案
这不可能说,因为似乎是您的项目以宏或函数的形式实现了Verify
。为什么不看一下实现?
话虽这么说,MFC 框架有 VERIFY
宏,它类似于 ASSERT
,区别在于表达式总是被求值,即使是在发布版本中,但不如果表达式的结果为假,则不执行任何操作。这可能是类似的方法,因为您的示例似乎调用了一些可能影响系统状态的函数。
关于c++ - 散落着断言的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19489633/
我是一名优秀的程序员,十分优秀!