Когда происходит оптимизация кода?

Вчера у меня было интервью. Там меня спросили, когда происходит оптимизация кода? Скажем,

int abc;//Global variable
abc = 3;
if(abc == 3)
{
  printf("abc will be always 3");
}
else
{
  printf("This will never executed");
}

Теперь вопрос, когда произойдет оптимизация? A ... Во время выполнения B ... Во время компиляции. Я ответил во время компиляции ... Мне казалось, что компилятор проверяет ключевое слово volatile во время компиляции. Если переменная не объявлена ​​как изменчивая, она оптимизирует код. Но когда компилятор узнает об этом, эта переменная никогда не будет отличаться от 3? Если это во время выполнения, то когда компилятор узнает, что эта переменная никогда не будет отличаться от 3? Потому что, если переменная будет изменена после выполнения этой части кода. Пожалуйста, развейте мои сомнения

5
задан Rasmi Ranjan Nayak 4 February 2012 в 16:20
поделиться