Оптимизация компилятора для местоположения объявления переменной

Я читаю из C ++ faq что «Местные жители должны быть объявлены вблизи их первого использования». Кроме того, Скотт Майер «Эффективный пункт C ++ 26» также предлагает это по соображениям производительности. Но недавно мне довелось услышать от кого-то, что компиляторы достаточно умны, чтобы оптимизировать переменные, где бы они ни были определены, независимо от области их использования в функции. И он предлагает объявить переменную в верхней части функции для простоты понимания (хотя я не покупаю эту причину). Правильно ли он в отношении оптимизации компилятора?

(Вопрос касается производительности и оптимизации компилятора. Не читабельность кода).

-2

Решение

Компилятор не имеет к этому никакого отношения. Есть два общих правила
в отношении определения переменных (локальных или других): сохранить область и
видимость как можно меньше, и, если это вообще возможно, инициализировать в
Определение. Эти правила предназначены для читателей, а не для компилятора.
И оба приводят к «объявлению местных жителей возле их первого использования», как
Следствие.

4

Другие решения

Да, они достаточно умны.

Но есть и технический ответ программного обеспечения: вы должны сделать это, потому что это лучший стиль программирования.

2

Размещение объявления о переменной рядом с местом, где используются переменные, увеличивает локальность и может облегчить понимание кода и потока программы. Кроме того, если переменная помещается во вложенную область видимости, она будет «уничтожена» при выходе из области, в которой она была объявлена, что поможет в таких вещах, как RAII.

0

Вы всегда должны стремиться написать исходный код, который легко читать, понимать и понимать.

Даже если компиляторы могут оптимизировать это, это хорошая практика, все же делать это. Это дает вам улучшенная читаемость, Вам не нужно кэшировать и запоминать, какое значение переменной было инициализировано в начале блока.

0