小编arh*_*hzu的帖子

优化,断言和释放模式

考虑一个功能

void f() {
   assert(condition);

   ...
}
Run Code Online (Sandbox Code Playgroud)

在调试模式下,如果启用了断言,则编译器可以自由地假设condition保持,因为如果没有,则不会执行剩余的代码.

但是,在发布模式下,我相信编译器只会看到

void f() {
   ...
}
Run Code Online (Sandbox Code Playgroud)

而且不能再假设了condition.

是否有任何编译器指令或静态断言技巧让编译器了解某些不变量?

c c++ optimization assert static-assert

7
推荐指数
1
解决办法
2090
查看次数

标签 统计

assert ×1

c ×1

c++ ×1

optimization ×1

static-assert ×1