C ++ (вложенные) инструкции вызова функций - регистры
Предполагая типичную реализацию C ++, которая имеет регистры и стек, регистры и параметры записываются в стек непосредственно перед вызовом g (), затем параметры считываются из стека внутри g () и читаются снова, чтобы восстановить регистры, пока g () возвращается к f ().
относительно вызова вложенной функции
void f()
{
int x = /*...*/;
int y = /*...*/;
int z = /*...*/;
...code that uses x, y and z...
g(x, y, z);
...more code that uses x, y and z...
}
1 / Все ли реализации C ++ с регистрами и стеком? Означает ли это: реализация зависит от архитектуры компилятора / процессора / компьютера?
2 / Какова последовательность инструкций (без языка ассемблера, просто большая картинка), когда я звонюf()
? Я читал разные вещи на эту тему, а также я неНе помню, чтобы регистры упоминались, а только складывались.
3 / какие дополнительные особенности / моменты следует подчеркнуть, когда вы имеете дело с вложенными функциями?
Спасибо"