ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

extern关键字

2019-07-02 14:52:56  阅读:213  来源: 互联网

标签:func2 func1 函数 文件 int 关键字 extern


extern关键字的用法有如下几种:

一 引入其它文件中定义的全局变量或函数 (不能是static修饰的,因为static修饰的变量或函数的作用域只存在于当前文件)

比如 在a.c文件中定义了一个全局变量和函数:

  int num = 5;

  int funca()

  {

    ...
  }

若想在b.c文件中引用a.c文件里的全局变量与函数,可以在b.c文件中使用extern来导入:

extern int num;
extern int funca();

这样就可以在b.c文件中引用a.c的变量num和函数funca了。

 

二 如果在.cpp里调用了c库中定义的函数,那么需要将c库中的函数使用 extern "C" 来防止这些函数被C++中的命名重整(name manling)修改名字,

造成无法找到对应的c函数。 比如:

c库中定义实现了如下函数:

int func1(int x);
int func2(char *str);

如果要在.cpp中使用这些函数,必须通过下面的形式导入:

extern "C" int func1(int x);
extern "C" int func2(char *str);

或者:

extern "C"
{
     int func1(int x);
     int func2(char *str);     
}

这样,C++就不会对extern "C"包含的函数func1,func2进行命名重整了。才能够根据函数名找到对应的函数。

标签:func2,func1,函数,文件,int,关键字,extern
来源: https://www.cnblogs.com/fengxing999/p/11120537.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有