В руководстве по компилятору IAR C/C++ говорится о написании исходного кода, удобного для оптимизации:
Избегайте использования адреса локальных переменных с помощью оператора &. Это неэффективно по двум основным причинам. Во-первых, переменная должна быть помещена в память и, следовательно, не может быть помещена в регистр процессора. Это приводит к большему и медленному коду. Во-вторых, оптимизатор больше не может предполагать, что вызовы функций не влияют на локальную переменную.
Какие еще существуют способы получения адреса локальной переменной? Очевидно, я знаю, что если бы у меня был указатель на эту переменную, я мог бы использовать ее, а если бы у меня был массив, я мог бы использовать имя массива, однако я не знаю никаких других методов получения адреса локальной переменной, кроме & оператор.