stdcall 和 cdecl 是编程中使用的两种常见调用约定语言。开发人员经常对其功能和兼容性有疑问。
1。堆栈清理职责
当调用cdecl函数时,调用者负责在函数返回后清理堆栈。这是因为 cdecl 调用约定指定被调用者(被调用函数)不清理堆栈。编译器知道函数的调用约定,相应地生成代码。
2。不匹配的调用约定
具有一种调用约定的函数调用具有另一种调用约定的函数通常不会出现问题。例如,stdcall函数可以调用cdecl函数,反之亦然。但是,重要的是要确保编译器不会发出与不匹配的调用约定相关的任何错误。
3。性能注意事项
stdcall 和 cdecl 调用约定之间通常没有显着的性能差异。编译器根据调用约定有效地生成堆栈清理和参数传递的代码。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3