【发布时间】:2015-03-18 20:32:23
【问题描述】:
我看到 C/C++ 代码使用在函数签名中声明的 extern "C" 以及同时将 C 标头包含到 CPP 文件中。
但有些函数只是在其签名之前声明 extern(没有“C”)。
QN1:
这两种定义函数的方式是否具有相同的效果,或者它们意味着不同的东西?
对不起,如果我很傻,但我无法通过 Google 找到这种差异。
例如:
extern int someFunction( void *ret_val);
extern "C" int someFunction( void *ret_val);
QN2:
如果函数在其签名中使用 extern 声明,是否需要将相应的头文件包含在 extern "C" 块中?
正如 cmets 中的另一位用户所指出的,标记的重复项并不完全满足这里的问题。我正在编辑,以便将来其他人不会被误导到不同的问题。
【问题讨论】:
-
@user2079303:如果您回答评论而不是评论,我会接受您的回答。非常感谢。
-
@MohamedIqzas 我无法回答,因为问题已经结束,很遗憾。