当前位置:  编程技术>c/c++/嵌入式

C/C++中extern "C" 的作用分析

    来源: 互联网  发布时间:2014-10-28

    本文导语:  我们经常会在C/C++程序中见到extern "C",这是一个很重要的概念。本文就来以实例形式讲述C/C++中extern "C"的作用。分享给大家供大家参考之用。具体分析如下: 作用:实现C和C++混合编程。 原理:C和C++编译器编译之后,函数名会...

我们经常会在C/C++程序中见到extern "C",这是一个很重要的概念。本文就来以实例形式讲述C/C++中extern "C"的作用。分享给大家供大家参考之用。具体分析如下:

作用:实现C和C++混合编程。

原理:C和C++编译器编译之后,函数名会编译成不同的名字,链接阶段名字查找会找不到目标,后面实例中会详解。

用法:
①.c文件中定义的函数,.cpp文件要调用时,该.cpp文件中要用extern "C"声明该函数;
②.反过来,.cpp文件中定义的函数,.c文件要调用,则同样要在.cpp文件中用extern "C"声明,.c文件只用普通的extern声明。

两个源文件分别编译成.o文件,再链接成执行文件。链接.o文件生成执行文件时,必须得用g++。

实例:

在源文件中声明的,没有头文件

.c文件定义的函数,.cpp文件调用:

//.c文件定义的函数
extern int myadd(int a, int b);
int myadd(int a, int b)
{
  return a+b;
}

//.cpp文件调用
#include 
using namespace std;
extern "C" int myadd(int a, int b);
int main()
{
  cout 

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.xml.stream类xmlinputfactory成员方法: is_supporting_external_entities定义参考
  • 请问只有变量只有extern 形式 但是删去extern 之后 会有 multiple defination error
  • 一个弱弱的问题:关于extern的使用
  • mod_auth_external
  • extern 的疑问:
  • extern "C" 在linux上的问题
  • 关于QT的extern,如何引进一个结构体
  • 关于外部函数extern func的用法疑问
  • 网卡external loopback测试程序
  • 请高手帮我解释这句话extern __FAR__ GT_Config *GT;
  • 上次问题解决了,原来是extern被重定义了。。。天阿,关键字也可以被重定义。。。。。欢迎接分
  • 简单问题:Unix下使用extern关键字的标准C程序如何编译?比如...
  • error LNK2001: unresolved external symbol 求助
  • 请教,extern使用出错(很小的程序)
  • c语言中static和extern的用法详细解析
  • Linux下使用extern如何写makefile
  • 关于error LNK2001: unresolved external symbol 的一个发现
  • 从汇编看c++中extern关键字的使用
  • 提示出现unresolved external symbol _main的解决方法
  • C++中extern "C"的用法
  • 浅谈C/C++中的static与extern关键字的使用详解




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3