gpt4 book ai didi

gcc 中的编译器优化

转载 作者:太空狗 更新时间:2023-10-29 16:01:44 25 4
gpt4 key购买 nike

我有一个 C 代码,我正在运行一些测试。我需要访问一个数组,但处于“只读”模式。我正在做这样的事情:

for (int i= 0; i < 1000; i++){
int a = shared_array[rand() % 64];
int b = shared_array[rand() % 64];
}

我的问题是:我如何从内存中获取一个值并确保编译器没有通过删除这些指令来优化它,因为在我的测试中我没有对这些值进行任何操作。即使我添加操作 int v = a + bv 也不会在其他任何地方使用,因此可以忽略它。

我正在使用带 -O3 的 gcc,我需要这样做才能将它与其他来源的结果进行比较。

最佳答案

强制编译器实际读取未使用变量的典型方法是使其volatile。这应该保证编译器在使用时实际从 RAM 中读取/写入变量。

关于gcc 中的编译器优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23293580/

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