默认情况下,c++ 成员函数是否使用 cdecl+fastcall 约定编译?

Are c++ member functions compiled with cdecl+fastcall convention, by default?

这2个约定在x86编译模式下一起使用?

对于 64 位编译,没有 cdecl + fastcall 对吗?只是 AMD 64 ABI 调用约定?如果是这样,如何在 64 位模式下在 stdcall 和 cdecl 之间延迟?

These 2 conventions are used together in x86 compilation mode?

没有。你从哪里得到这个想法的?每个调用约定都是不同的,任何给定的函数一次只能使用一个调用约定。不仅如此,fastcall 也不规范。不同的 32 位编译器以不同方式实现它(如果有的话),因此它不能用于可移植代码。 32 位中唯一标准的可移植调用约定是 cdeclstdcall.

And for 64 bit compilation, there's no cdecl + fastcall right? Just AMD 64 ABI calling convention?

是的。 64 位中只有一种通用调用约定。代码中明确使用的 32 位调用约定将被忽略。

If so, how to defer between stdcall and cdecl in 64 bit mode?

你不知道。因为根本不存在