x86平台是不寻常的,因为它没有定义全局ABI和
调用约定.
Win32 / x86是,它标准化在stdcall.在调用约定之间有各种折衷 – 将参数放入寄存器中更快,但是它强制调用者溢出以前使用这些寄存器的任何内容.所以很难预测哪一个更好的表现.
重要的是要有一个统一的标准调用约定来实现不同编译器(甚至是不同的编程语言)之间的互操作性.
其他平台没有cdecl,stdcall或fastcall约定.他们没有相同的寄存器组.在某些情况下,他们甚至没有注册.但是他们仍然可以使用C代码.
Win32 / x86_64不使用stdcall,它使用架构定义的约定.
Linux / x86也有一个约定.