调用约定:stdcall 与 cdecl
在编程中,调用约定定义参数如何在函数之间传递。两个常见的调用约定是 stdcall 和 cdecl.
1。 cdecl函数调用
当调用cdecl函数时,调用者不负责清理堆栈。编译器根据函数的调用约定生成处理堆栈清理的代码。
2。混合调用约定
通常不建议混合调用约定。然而,在某些情况下这是可能的。例如,stdcall 函数可以调用 cdecl 函数,反之亦然。这可能发生在与 Windows API 交互的代码中,因为 WinAPI 函数使用 stdcall 约定,而 C 程序默认使用 cdecl。
3。性能比较
stdcall 和 cdecl 之间没有显着的性能差异。在大多数情况下,两种约定使用相同数量的开销。但是,根据特定的编译器和平台,某些优化可能可用。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3