extern "C++"是什么意思?

winmain 2002-05-17 05:22:49
在SGI中有不少该语句。请高手指点!
...全文
154 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Q_O 2002-05-22
  • 打赏
  • 举报
回复
输出一个C++函数。
codingcoding 2002-05-21
  • 打赏
  • 举报
回复
这个是和连接规则有关系的。连接规则的用处是,你声明了一个连接规则。并不是意味着你的函数是用这种语言写的。而是这个函数象用这种语言写的函数那样被调用。在c++的编译器里,所有函数的默认的连接声明都是extern "c++"。这样。如果你想以c的形式调用以个函数,那么在它的前面加extern "c".
如果你的一个函数是用c方式连接的话,那么指向这个函数的指针也必须是以c的方式连接。例如:
extern "C" {
int fc(int);
int (*fp1)(int) = fc;
}
如果都是c++的,那么不用写extern "c++"
int fcpp(int);
int (*fp2)(int) = fcpp; // Both have C++ linkage
还有,在下面如果composer是个c函数

extern "C" void composer( int(*)(int) );
extern "C++" int foo(int);
composer( foo ); // Mismatch
这个是不匹配的。
在这种情况下,你必须写个包装函数
extern "C" void composer( int(*)(int) );
extern "C++" int foo(int);
extern "C" int foo_wrapper(int i) { return foo(i); }
composer( foo_wrapper ); // OK


extern "C++" 就是这样的用处。
step_by_step 2002-05-21
  • 打赏
  • 举报
回复
extern "c"是用c语言的一些连接规则,可以防止c++编译器对被连接的函数进行名字粉碎。
extern "c++"偶没有见过,因该和extern差不多,也是按照c++的规定进行连接。
winmain 2002-05-21
  • 打赏
  • 举报
回复
babysloth帮忙呀!
winmain 2002-05-20
  • 打赏
  • 举报
回复
我问的是什么意思!!!!!!!!!!!!!!!!!!
zhaoweikid 2002-05-20
  • 打赏
  • 举报
回复
extern "c" 表示函数使用C的连接方式,也就是说能被C语言写的程序调用(C和C++的连接方式是不一样的)。
联想 extern "C++"大概也知道了吧
codingcoding 2002-05-19
  • 打赏
  • 举报
回复
extern "C" and extern "C++" 都是c++所支持的。
winmain 2002-05-18
  • 打赏
  • 举报
回复
//VC的SERVPROV.H中的摘录
#if defined(__cplusplus) && !defined(CINTERFACE)

#if (_MSC_VER >= 1200) // VC6 or greater
extern "C++"
{
#endif
LLnju 2002-05-18
  • 打赏
  • 举报
回复
没见过
sbg 2002-05-18
  • 打赏
  • 举报
回复
只见过extern "C",没见过extern "C++"
chen3feng 2002-05-18
  • 打赏
  • 举报
回复
表示采用C++的命名约定,类似的还有别的,比如Fortran,当然,要一个厂家的编译器
winmain 2002-05-18
  • 打赏
  • 举报
回复
可不可解释清楚一点,最好举例。版主帮忙呀
sheve 2002-05-17
  • 打赏
  • 举报
回复
只见过extern "C",没见过extern "C++",如果确实存在的话,可能是某种编译器实现的一个扩展。
liujuntao 2002-05-17
  • 打赏
  • 举报
回复
将C++中的库函数放入C中
kary 2002-05-17
  • 打赏
  • 举报
回复
只见过extern "C"表示输出C函数接口。
没见过extern "C++"

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧