有一些调用约定(例如 pascal,stdcall),但据我所知,C 使用的是 cdecl (C-声明)。这些约定中,每个约定在调用者如何将参数加载到堆栈上以及哪一个(调用方 / 被调用方)清理堆栈的方式略有不同。 谈到清理堆栈,这就是我的问题。我不明白:这三件事情是否不同? 堆栈清理 ...
C语言使用的是cdecl调用约定,我已经研究并从汇编中进行了调用。它感觉很好,为什么要打破兼容性?为什么需要另一种约定?
我知道__stdcall函数不能有省略号,但我想确认是否有平台支持使用非__cdecl或__stdcall调用约定来支持stdarg.h函数。