C调用约定/参数传递

时间:2018-08-30 03:31:52

标签: c assembly

在我所看到的每个地方(“从头开始编程”,维基百科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位计算机上编译)传递。我传递了更多参数,调用方只是使用更多寄存器来传递值。

那正常吗?我访问过的在线资源是否过时了?

谢谢。

0 个答案:

没有答案