我在文件开头使用extern "C"
看到了C ++中的一些代码,如下所示:
#ifdef __cplusplus
extern "C" {}
#endif
这是什么意思?它是如何工作的?
答案 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风格编译的。