У меня вопрос в одном из моих тестов, который попросил меня ответить на то, что оператор switch производит наименее эффективный машинный код. Возможными ответами были O4, O1, O2 или O3. Я не знаю, что они означают.Какой оператор switch производит наименее эффективный машинный код?
ответ
НКУ Options That Control Optimization
-O -O1 Оптимизировать. Оптимизация компиляции занимает несколько больше времени, а для большой функции - намного больше памяти.
-O2 Оптимизируйте еще больше. GCC выполняет почти все поддерживаемые оптимизации, которые не связаны с компрометацией космической скорости. По сравнению с -O, этот параметр увеличивает как время компиляции, так и производительность сгенерированного кода.
-O3 Оптимизировать еще более
-Os Оптимизировать по размеру.
-Ofast Пренебрежение соблюдением строгих стандартов. -Ofast позволяет оптимизировать все -O3. Он также позволяет оптимизировать, которые недействительны для всех стандартных совместимых программ.
Я думаю, что номера опций в gcc по модулю три, поэтому -O4 действительно -O0. Довольно легко проверить ... –
Зависит от компилятора и языка? Нужен контекст – Deco
Прошу прощения, я думаю, вы неправильно поняли этот вопрос (возможно, не о операторах switch, а о компиляторах), и ваш вопрос здесь совершенно неопровержимый as-is - контекст, код, язык, который отсутствует. – Mat
@Deco Не было никакого контекста. В этом весь вопрос. –