Шаг 1 Переменные a
, b
и pa
будут размещены в стеке. Следовательно, нет запроса к ОС на выделение памяти - вы просто будете использовать стек, который контролируется самим процессом. Возможно, он не будет запрашивать 16 байтов - достаточно 4 байта, поскольку вы эффективно используете переменную a
. И даже этот является постоянным, поэтому экземпляры a
можно заменить на 1
.
Шаг 4: Этот шаг может быть полностью пропущен компилятором, поскольку вы не используете значение pa
, пока оно не будет переназначено на следующем шаге.
Шаг 6: Вставить два аргумента (%d\0
строка и значение 1
) в стек и вызвать функцию с именем printf
. Не знаю, выводит ли он в терминал - может быть stdout
перенаправляет в файл?
В конце концов, невозможно точно знать, какие инструкции будут получены из этого исходного кода. Зависит от архитектуры, версии операционной системы / ОС, версии компилятора / cc, флагов компилятора ...