我有一段C代码并正在进行测试。我需要以“只读”模式访问数组。我正在尝试以下操作:
for (int i= 0; i < 1000; i++){
int a = shared_array[rand() % 64];
int b = shared_array[rand() % 64];
}
我的问题是:如何从内存中提取一个值,确保编译器不通过删除这些指令来进行优化,因为在我的测试中,我对这些值没有做任何操作。即使我添加了一个操作
int v = a + b
,v 也没有在其他地方使用,所以它可能会被忽略。我正在使用带有 -O3 的 gcc,并且我需要这样做才能将其与另一个来源的结果进行比较。