Вывод будет варьироваться от компилятора к компилятору, в том числе от одной версии gcc к другой, от одного gcc в одном дистрибутиве до другого или на той же машине. В основном ответ - да, результаты могут и будут широко варьироваться. Сказать, что вы можете сначала не найти разницу в зависимости от кода и в зависимости от параметров вашего компилятора, но чем больше разных машин вы пробуете, 32-битными и 64-битными, незначительными различиями в обновлениях в одном и том же дистрибутиве и т. Д. что исходный код C - это конец, программа выполнена, производительность завершена и т. д. Реальность такова, что существует значительное количество вариаций, оставшихся от C до двоичного кода даже на одной машине с одним и тем же компилятором, каждый вариант имеет Возможности и проблемы, отлаживаемые или нет, производительность или нет, ошибки компилятора или нет. с достаточно большой программой легко продемонстрировать увеличение производительности в несколько раз, используя различные ключи на компиляторе или лучший компилятор.
Не имеет значения, если вы компилируете в asm или объект (который в зависимости от компилятора может и будет останавливаться на временном ассемблированном файле, а затем отбрасываются промежуточные файлы), порядок и выбор инструкций будут различаться. Даже несколько простую программу пытаются выполнить с отладочным материалом или без него (-g я думаю, что я НИКОГДА не использую его) и различными уровнями оптимизации -O0, -O1, -O2, -O3. 8 комбинаций прямо здесь, вы должны получить несколько разных результатов, в частности от отсутствия оптимизации до некоторой оптимизации.