码迷,mamicode.com
首页 > 其他好文 > 详细

关于extern "C"的使用

时间:2015-02-28 13:00:34      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

假设存在一个用C语言编写的函数

int func(void)

{

/*此处省略三千行*/

}

(1)仅在.c文件中调用该函数。

只需在.h文件中作如下声明

int func(void);

(2)仅在.cpp文件中调用该函数。

需在.h文件中作如下声明

extern "C"

{

  int func(void);

}

此处需要说明一下:C++支持函数重载而C语言不支持,同一函数被C和C++编译器编译后的名字不同,使用extern "C  "解决名字匹配问题。

(3)既可以在.c文件又可在.cpp中调用该函数。

需要在头文件中做一个兼容,兼容以上两种情况,在不同的情况下,显示其中一种。

#ifdef __cplusplus

extern "C"

{

#endif

  int func(void);

#ifdef __cplusplus

}

#endif

 

关于extern "C"的使用

标签:

原文地址:http://www.cnblogs.com/shijianchuzhenzhi/p/4304950.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!