【发布时间】:2016-01-01 09:39:45
【问题描述】:
#include <stdio.h>
int main() {
const int a = 10;
int *ptr = &a;
printf("Initial value of a:%d\n", a);
*ptr = 100;
printf("Modified value of a: %d\n", a);
return 0;
}
输出(gcc -O3 const_ptr.c -o const_ptr -save-temps):
Initial value of a: 10
Modified value of a: 100
我在启用优化的情况下编译了代码,但直到a 的值在第二个printf 之前被修改,代码是否适合代码优化?
【问题讨论】:
-
你有什么问题
-
未定义的行为。您正在修改
const对象。 -
为什么你认为优化设置应该改变代码行为?
标签: c optimization undefined-behavior