gpt4 book ai didi

c++ - 在 gcc 编译器中禁用特定优化(死代码消除)

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:00:19 28 4
gpt4 key购买 nike

我想在 C++ 编译中禁用无用代码消除优化。有没有办法通过保留所有其他 -O 优化来禁用此特定优化。我尝试使用 -fnodce 但它不起作用。

更新(从评论中复制):我有类似的东西

timer t;
t.start();
for(int i=1;i<=1000;++i)
object t;
t.stop();

我想测量对象 t 的构建时间,但什么都不做。我不想通过创建 1000 个对象的数组来做到这一点。有办法解决吗?

最佳答案

在构造的对象上添加“volatile”限定符,这告诉编译器假设构造存在副作用,从而防止对其进行优化。即:

timer t; 
t.start();
for(int i=1;i<=1000;++i)
volatile object t;
t.stop();

关于c++ - 在 gcc 编译器中禁用特定优化(死代码消除),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8988291/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com