为啥不允许“重载函数的第二个 C 链接”?
Posted
技术标签:
【中文标题】为啥不允许“重载函数的第二个 C 链接”?【英文标题】:Why "second C linkage of overloaded function" is not allowed?为什么不允许“重载函数的第二个 C 链接”? 【发布时间】:2014-05-07 12:52:07 【问题描述】:我将我的 C++ dll 转换为 C dll:
#ifdef __cplusplus
extern "C"
#endif
MY_EXPORT int my_func();
MY_EXPORT void my_func(int n);
#ifdef __cplusplus
#endif
没有extern C
声明一切正常。有了这个声明,我得到了
错误 C2733:重载函数“my_func”的第二个 C 链接不是 允许
为什么不允许从 C 风格的 dll 中导出重载函数?
【问题讨论】:
***.com/questions/479207/function-overloading-in-c C 链接意味着没有名称修饰。因此他们会得到相同的名字。 error C2733 second C linkage of overloaded function 'function' not allowed的可能重复 【参考方案1】:C 不允许重载函数。那就是C不支持重载。这是 C++ 的一个特性。
【讨论】:
以上是关于为啥不允许“重载函数的第二个 C 链接”?的主要内容,如果未能解决你的问题,请参考以下文章