Я знаю, что в C мы можем изменить «const int» с помощью указателя. Но при компиляции программы я включил флаг «-O2» в gcc и const int не смог изменить значение, поэтому просто хотел знать, как флаг оптимизации gcc влияет на модификацию «const int».gcc -O2 влияют на изменения при изменении const int
Вот пример приложения test.c
#include <stdio.h>
#include <stdlib.h>
int main(int ac, char *av[])
{
const int i = 888;
printf("i is %d \n", i);
int *iPtr = &i;
*iPtr = 100;
printf("i is %d \n", i);
return 0;
}
gcc -Wall -g -o test test.c
./test
i is 888
i is 100
gcc -Wall -g -O2 -o test test.c
i is 888
i is 888
Это любопытство заставляет меня написать этот вопрос.
Я получаю предупреждение. 'initialization отбрасывает 'const' классификатор от типа целевого указателя'. –
«Я знаю, что в C мы можем изменить« const int »с помощью указателя« Извините? –