1. 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。

也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的,C++的规则在翻译这个函数名时会把fun这个名字变得面目全非,可能是fun@aBc_int_int#%$也可能是别的,这要看编译器的"脾气"了(不同的编译器采用的方法不一样),为什么这么做呢,因为C++支持函数的重载啊,在这里不去过多的论述这个问题,如果你有兴趣可以去网上搜索,相信你可以得到满意的解释!
    第二,当extern不与"C"在一起修饰变量或函数时,如在头文件中: extern int g_Int; 它的作用就是声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块活其他模块中使用,记住它是一个声明不是定义!也就是说B模块(编译单元)要是引用模块(编译单元)A中定义的全局变量或函数时,它只要包含A模块的头文件即可,在编译阶段,模块B虽然找不到该函数或变量,但它不会报错,它会在连接时从模块A生成的目标代码中找到此函数。

2. static int g_Int在文件前修饰变量指该变量作用域仅作用于本文件;在函数体内修饰变量,指该变量作用域为整个文件,函数运行完也不会消毁变量;而在类中,则表示变量是属于全部实例化对象所共有的,必需初始化,且初始化必需在类外,不受类访问控制符限定;

转载于:https://www.cnblogs.com/flowingwind/p/8304887.html

extern、static相关推荐

  1. 【正本清源】关于extern、static、const的正确使用方法

    项目要用到DMA传输传感器的数据,研究了一下DMA,觉得并没有什么难的,不就是配置几个参数么,但是却怎么也收不到数据.无奈只能照着野火的例程仿制了一遍.结果还是没有任何反应,这一整天就是在不断地尝试各 ...

  2. const、extern、static的使用不再神秘

    验证const: 验证extern: extern的作用是在程序中引入一个全局变量,比如 extern int age:当然这个age变量名在整个程序中只能有一个,否则会发生冲突.而且无论在哪个文件中 ...

  3. C与C++中的extern与static、extern C与__cplusplus的作用

    一.概述 以C语言编写的源文件后缀名为.c,以C++语言编写的源文件后缀名为.cpp,C++支持函数的重载,C和C++编译器对函数的编译处理是不完全相同.C++编译后的函数一般是以函数名和形参类型来命 ...

  4. 【c++】c++常见关键词const、static、extern、explicit含义

    c++里有几个常见的关键词,比如const.static.extern.explicit,这里就简单介绍下每个关键词的含义以及使用场景. const const相对来说还是比较简单易懂的,就是被修饰的 ...

  5. const、static、内部链接属性和外部链接属性整理

    2019独角兽企业重金招聘Python工程师标准>>> 说起const.static.以及#define大家都知道,我一直以为我也是知道的,昨天一同学说他面试时被问到#define定 ...

  6. C C++中关于全局变量静态变量,extern,static,const的区别与总结

    一.extern 1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义.此外extern也可用来进行链接指定. 也 ...

  7. C语言中auto,register,extern,static【转】

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...

  8. java final static_Java基础之final、static关键字

    一.前言 关于这两个关键字,应该是在开发工作中比较常见的,使用频率上来说也比较高.接口中.常量.静态方法等等.但是,使用频繁却不代表一定是能够清晰明白的了解,能说出个子丑演卯来.下面,对这两个关键字的 ...

  9. C语言中的 static变量、static函数

    Static variable & function 1.Static variable 2.静态局部变量(static local variable) 3.静态全局变量(static glo ...

最新文章

  1. 2018-3-25论文(Grey Wolf Optimizer)自然界狼群的生活等级
  2. Android各层推荐开发书籍及参考资料
  3. 2021-03-04 Halcon初学者知识 【18】谈谈秩滤波(Rank filter)
  4. yunyang tensorflow-yolov3 NMS:non maximum suppression 非极大值抑制方法
  5. [BUUCTF-pwn]——ciscn_2019_n_5
  6. 关系数据可视化gephi
  7. Kubernetes初步学习
  8. python安装失败未指定_windows 7 32bit安装 python3.5.0 安装错误 0x80240017 -未指定错误...
  9. Python 最抢手、Java 最流行,前线程序员揭秘 2019 软件开发现状
  10. 全球前十大证券交易所在区块链领域的探索和布局
  11. 亚马逊云科技携海信集团打造全球服务实践案例标杆
  12. 计算机组成原理总结及知识网图
  13. 终极算法【2】——终极算法
  14. Bat To Exe Converter将bat转换为exe的方法
  15. php获取当前域名的方法 如何获得域名
  16. 做XH2.54杜邦线材料-导线
  17. 计算机可以怎样做游戏,如何制做游戏 怎么制做游戏
  18. Python简单99例-训练每天
  19. php实训参考文献,SPSS实训心得体会
  20. 建模助手 | 关于REVIT的小技巧,你知道多少?

热门文章

  1. CSS之Box-sizing
  2. 数据结构之栈实现中缀转后缀并计算结果
  3. Pro ASP.NET 4 CMS
  4. 神经网络模型模型转ONNX
  5. java算法之冒泡排序
  6. 蓄水池抽样算法 Reservoir Sampling
  7. Android Sdk 国内镜像下载地址
  8. linux3.0.4编译LDD中的scull全过程
  9. opengl模板缓冲区
  10. JavaWeb中验证码的实现