extern“C”如何在C ++中工作?

时间:2012-02-08 09:17:43

标签: c++ extern-c

我在文件开头使用extern "C"看到了C ++中的一些代码,如下所示:

#ifdef __cplusplus 
extern "C" {} 
#endif

这是什么意思?它是如何工作的?

4 个答案:

答案 0 :(得分:5)

它用于通知编译器为大括号中定义的函数禁用C ++名称修改。 http://en.wikipedia.org/wiki/Name_mangling

答案 1 :(得分:4)

可能不是那样,但更像是:

#ifdef __cplusplus 
extern "C" {
#endif

//some includes or declarations

#ifdef __cplusplus 
}
#endif

它告诉编译器对指令内声明的内容使用C名称修改。

你现在的方式:

#ifdef __cplusplus 
extern "C" {} 
#endif

只是死代码。

答案 2 :(得分:0)

指定 linkage specification 它告诉链接器如何链接代码。

如果您想要 mix C and C++ code ,这非常有用。

答案 3 :(得分:0)

Extern "C" - 通知编译器,所提到的函数是用C风格编译的。