Microsoft Visual C++是否未使用带有浮点的C/C++调用约定

Is Microsoft Visual C++ not using the C/C++ calling conventions with floats?

本文关键字:C++ 调用 约定 是否 Visual 未使用 Microsoft      更新时间:2023-10-16

我一直在为我的编译器项目研究浮点数,尤其是如何将它们从十进制符号转换为字节。我确实找到了所有问题的答案,但这段YouTube视频让我很担心。

这家伙很好地解释了SSE和指令集,我确实理解了所有内容,但他也提到,当涉及到floats时,Microsoft's Visual C++显然没有使用_stdcall调用约定。这对我来说太可怕了,因为我计划在自己的编译器中使用C调用约定,当然也要调用外部函数。

基本问题:我必须担心这件事吗,或者这是真的吗?

这主要是因为Visual C++在将代码导出到DLL时是否也会这样做,因为这可能会成为一个问题。

正如MSchanges在注释中指出的那样,不存在"C/C++调用约定"这样的东西。C和C++的调用约定取决于平台(编译器、运行时、操作系统和硬件),在C或C++标准中没有提及。

听起来你想使用__stdcall,据我所知,它与任何实际的标准都无关,尽管它的名字是这样的。