我此时真的只熟悉C调用约定(如Nasm - C calling convention所述)。这个源代码也描述了Pascal样式调用约定。
我想了解那里的各种函数调用约定(描述或来源)?使用一个优于另一个(如果有的话)的优点和缺点是什么?
注意:最感兴趣的是x86平台,但欢迎您描述其他人。
答案 0 :(得分:2)
C调用约定的最大优点是:
基于寄存器的调用也很有用,我认为很多C编译器都会这样做来优化而不是将整数/指针推到堆栈上 - 当然不是库中的外部可见函数!
关于惯例的重点是它们是传统的。遵循惯例是有道理的,因为那些遵守惯例的人知道会发生什么。所以真的,不要过度思考它。在这种情况下,跟随人群会产生实实在在的好处。