extern "C" {} 来沟通C和C++

比如说你用C++开发了一个DLL库,为了能够让C语言也能够调用你的DLL输出(Export)的函数,你需要用extern "C"来强制编译器不要修改你的函数名。
通常,在C语言的头文件中经常可以看到类似下面这种形式的代码:

#ifdef __cplusplus 
extern "C" { 
#endif

/**** some declaration or so *****/

#ifdef __cplusplus 
  }

#endif /* end of __cplusplus */

比如void foo1();
如果c文件包含了它,生成的object文件中此函数被命名为 c_foo1,
而在cpp文件中包含了它,生成的object中此函数命名为cpp_foo1,使用extern "C"后,可以强制使其仍然为"c_foo1"。
这么做的目的是为了在c和cpp中互相调用函数命名一致,否则会出现链接错误。

上一篇:HTML5_图片合成_刮刮卡


下一篇:学习网页制作中如何在正确选取和使用 CSS 单位