How does extern “C” work in C++?
本问题已经有最佳答案,请猛点这里访问。
我看到C++中的一些代码使用EDOCX1,0,在文件的开头这样:
1 2 3 | #ifdef __cplusplus extern"C" {} #endif |
这是什么意思?它是如何工作的?
型
它用于通知编译器禁用在括号内定义的函数的C++名称修改。http://en.wikipedia.org/wiki/name_mangling
型
可能不是这样,但更像是:
1 2 3 4 5 6 7 8 9 | #ifdef __cplusplus extern"C" { #endif //some includes or declarations #ifdef __cplusplus } #endif |
它告诉编译器使用
你现在拥有它的方式是:
1 2 3 | #ifdef __cplusplus extern"C" {} #endif |
号
只是死代码。
型
型
它指定了一个链接规范。它告诉链接器如何链接代码。
当你想混合C和C++代码时,它是有用的。