在我所看到的每个地方(“从头开始编程”,维基百科x86 Calling Convention,...),据说C会通过堆栈传递参数。但是,在下面的C代码中
TypeOfX SetValueByName(TypeOfX x)
{
.. original switch statement
return x;
}
参数a通过寄存器%edi(用于int func(int);
int main() {
func(5);
return 0;
}
int func(int a) {
return a;
}
以便在Ubuntu 64位计算机上编译)传递。我传递了更多参数,调用方只是使用更多寄存器来传递值。
那正常吗?我访问过的在线资源是否过时了?
谢谢。