Не задумывайтесь над этим.
На самом деле вы не программируете компьютер; вы описываете программу . Работа вашего компилятора заключается в создании программы, которая будет выполняться компьютером, используя ваше описание. Это практическая реальность, основанная на правиле «как будто» стандарта C ++: компилятор не обязан следовать вашим «шагам» один за другим до тех пор, пока наблюдаемые результаты реальных (скомпилированных) ) программа соответствует вашему описанию (исходный код).
Ваш компилятор очень, очень умный. Он более чем способен гарантировать, что он не выполняет лишние, дополнительные, ненужные шаги для случаев вот так, как бы вы это ни написали. Для меня *, результирующая сборка для обоих подходов идентична , если только вы не понизите уровень оптимизации (который на самом деле увеличивает ), что делает программу более похожей шаги в моем описании "уровень, функция отладки).
Просто напишите четкий, самодокументированный, простой код, который отражает ваши намерения. Только когда у вас есть ситуация, когда компилятор имеет возможно, не справились со своей задачей лучше, вы вмешивались в подобные вопросы.
* Хорошо, это было Марек ?