Компиляторы заботятся только о наблюдаемом поведении. Компилируете ли вы
int main() {
;;;;;;;;;;;;;;;;;;
return 0;
}
или
int main() {
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
return 0;
}
, это не имеет никакого значения для конечного исполняемого файла. Наблюдаемое поведение обоих примеров одинаково.
Если вы хотите убедить себя, посмотрите на вывод компиляторов (это отличный инструмент: https://godbolt.org/z/bnbxiP) или попробуйте профилировать приведенные выше примеры (но не ожидайте получения значимых чисел;).
Я предлагаю не думать о коде как о способе общения с вашим процессором. Когда вы пишете код, вы не выражаете инструкции для своего процессора. Код - это скорее рецепт для компилятора, и ваш компилятор гораздо лучше знает, каквмешивать процессор, чем любой человек. Небольшая разница, но я думаю, что это помогает.