8

我在几个地方看到微软x64平台的调用约定被缩小到只有一个:调用者清理堆栈(cdecl),参数以堆栈和寄存器的组合传递(我在这里不详细介绍)。我假设如果这是操作系统的调用约定,那么可能所有其他针对 Windows 的编译器(例如 mingw-w64)也遵循它。

这种调用约定在其他主要平台(x64Linux 等)上也适用吗?或者 Linux 是否仍然使用多种调用约定,或者甚至只是一种但不同的一种?在Linux上是否允许GCCClang允许多个调用约定?x64

4

1 回答 1

12

我刚刚在这里这里找到了答案。基本上,Windows 采用一种方式,其他人采用另一种方式,但每个平台只采用一种方式(与每个平台的多种方式相反x86

于 2013-08-08T21:05:38.213 回答