CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”声明?

楼主blactte(想认识我吗?在靠近一点!)2002-04-22 17:36:31 在 C/C++ / C语言 提问

在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”声明?  
   
   
  不明白,可否详细解答! 问题点数:30、回复次数:3Top

1 楼linjiework(霖杰)回复于 2002-04-22 17:39:18 得分 15

因为   C   语言和   C++   语言的编译规则不一样,所以要告诉系统哪些函数是用   C   方式编译,哪些函数需要用   C++   方式编译。  
  如果你不加   extern   "C"   ,在编译时,系统会提示找不到此函数。  
  Top

2 楼ginger(似水流年)回复于 2002-04-22 17:43:29 得分 0

standard   C++  
   
  C   is   c  
   
  c++   is   C++Top

3 楼rovoboy(魂之猎人)回复于 2002-04-22 17:57:42 得分 15

extern   "C"表示编译生成的内部符号名使用C约定  
  例如:  
  int   Fun(int   i,int   j)  
  C:_Fun  
  C++:_Fun_int_int  
  具体生成什么可能与编译器有关  
  由于C++支持重载,而重载是在编译期确定的,所以C++必须在内部符号名上区分各重载函数,所以就将参数类型加在函数名后。  
   
  Top

相关问题

  • 在c++程序中调用被c编译器编译后的函数,为什么要加extern"C"?
  • 不用编译器可以调用API函数吗
  • c编译器
  • 为什么c编译器找不到math.h中的函数
  • dec-c++编译器中的函数库怎么查询?
  • C++编译器链接库,找不到函数
  • 哪一个C++编译器支持默认构造函数是虚拟函数?
  • C#的编译器
  • C的编译器
  • dev-c++编译器

关键词

  • c++
  • 函数
  • 编译器
  • 编译
  • 重载
  • extern

得分解答快速导航

  • 帖主:blactte
  • linjiework
  • rovoboy

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo