这两个约定在x86编译模式下一起使用?
对于64位编译,没有cdecl + fastcall对吗?只是AMD 64 ABI呼叫约定?如果是这样,如何在64位模式下推迟stdcall和cdecl?
答案 0 :(得分:4)
这两个约定在x86编译模式下一起使用?
没有。你从哪里得到这个想法?每个调用约定都是不同的,任何给定的函数一次只能使用一个调用约定。不仅如此,fastcall
还没有标准化。如果有的话,不同的32位编译器以不同的方式实现它,因此它不能用于可移植代码。 32位中唯一标准的便携式呼叫约定是cdecl
和stdcall
。
对于64位编译,没有cdecl + fastcall对吗?只是AMD 64 ABI呼叫约定?
是。 64位中只有一种通用调用约定。代码中明确使用的32位调用约定将被忽略。
如果是这样,如何在64位模式下推迟stdcall和cdecl?
你不是。因为它们不存在于al。