gpt4 book ai didi

可以在 c 中使用不同的调用约定定义函数吗?

转载 作者:太空宇宙 更新时间:2023-11-04 01:13:49 24 4
gpt4 key购买 nike

int _cdecl    f (int x) { return 0; }
int _stdcall f (int y) { return 0; }

名称修改后将是:

_f
_f@4

哪个不冲突,这在c中是否允许,如果不允许,为什么?

最佳答案

关键字_cdecl_stdcall 不是C 语言的一部分。这些是 Microsoft 扩展,之前有类似的 Borland 扩展。

在标准 C 语言中,您不能声明调用约定。显然,声明的每个函数都等同于 MS 编译器所指的“_cdecl”约定。

当您调用它们时,可以使用内联汇编来区分这两个函数。因为您使用的是特定于平台的 C 供应商扩展,所以您可能会考虑使用内联汇编。

关于可以在 c 中使用不同的调用约定定义函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5981408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com