考虑以下不会内联的函数并假设 x86 作为平台:
void doSomething(int & in){
//do something
}
首先,我不确定这种情况是否会发生,但是因为我认为有可能我会问,所以如果在任何调用者中调用此函数时,要提供的参数恰好位于调用者堆栈帧的顶部,因此在在汇编语言中通过 ebp 寄存器(在被调用者将 esp 的内容移动到 ebp 之后)被调用的函数访问它是可能的你建议我们忽略为函数声明一个参数并在这种特殊情况下使用汇编来访问我们的参数还是只是保留函数定义并让编译器完成它的工作?因为我还没有读到任何编译器会认为这种特殊情况作为调用约定的因素的地方,我认为它只会生成代码以将指向参数的指针传递给被调用者堆栈帧或寄存器之一