#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
):此代碼如何通過GCC進行優化?
Initial value of a: 10
Modified value of a: 100
我優化編譯的代碼啓用,但直到a
值被第二printf
之前修改,是代碼校正代碼優化?
什麼是您的問題 –
未定義的行爲。你正在修改一個'const'對象。 – EOF
爲什麼你認爲優化設置應該改變代碼行爲? – OldProgrammer