относится к размещенной среде, а не автономной.

дал минимальную C ++ программу:

int main() {
    return 1234;
}

и скомпилировал его с помощью clang ++ 5.0 с отключенной оптимизацией (по умолчанию-O0).Полученный код сборки:

  pushq %rbp
  movq %rsp, %rbp
  movl $1234, %eax # imm = 0x4D2
  movl $0, -4(%rbp)
  popq %rbp
  retq

Я понимаю большинство строк, но я не понимаю "movl $ 0, -4 (% rbp)". Кажется, программа инициализирует некоторую локальную переменную в 0. Почему?

Какая внутренняя деталь компилятора приводит к этому хранилищу, которое не соответствует никому в источнике?

Ответы на вопрос(1)

Ваш ответ на вопрос