文章目录

  • extern的使用
    • 1. 作用一:防止编译器混淆同文件中的声明与定义
    • 2. 作用二:防止编译器混淆不同文件中声明与定义

extern的使用

1. 作用一:防止编译器混淆同文件中的声明与定义

在使用外部链接和内部链接的静态变量时,为了防止同名变量的覆盖(防止编译器混淆声明与定义),我们按声明的位置把变量分为:

  • 外部变量(external variable):,把变量的定义性声明放在了所有函数外面的变量
  • 内部变量:自动变量,寄存器变量,静态变量
#include<stdio.h>
int num = 1;  // 外部链接的静态变量
static char ch = 'a'; // 内部链接的静态变量
int main(){extern int num; // 该语句为声明而非定义(再次声明了num外部链接的静态变量)extern char ch;/* int num;          该语句为定义,而非声明(定义了一个同名为num的局部变量) *//* char ch;          该语句为定义,而非声明(定义了一个同名为ch的局部变量) */return 0;
}

2. 作用二:防止编译器混淆不同文件中声明与定义

#incldue<stdio.h>
int num1 = 1;  // 此处定义了该文件中的一个外部链接的静态变量num1
extern int num2;  // 此处是声明了一其他文件中的一个外部链接的静态变量num2int main(){return 0;
}

总结:
函数内使用extern,那么“外部”是相对于函数的,也就是指该文件的函数外
函数外使用extern,那么“外部”是相对于文件的,也就是指该文件外

c语言中extern的使用相关推荐

  1. C语言中extern关键字的使用

    C语言中extern关键字的使用,直接上代码. file1.c文件 #include<stdio.h> extern long power(int); int A = 2; int mai ...

  2. c语言中extern关键字_了解C语言中的extern关键字

    c语言中extern关键字 In this article, we'll take a look at understanding the extern keyword in C. 在本文中,我们将了 ...

  3. c语言关键字extern作用,C语言中extern关键字详解

    <C语言中extern关键字详解>由会员分享,可在线阅读,更多相关<C语言中extern关键字详解(5页珍藏版)>请在人人文库网上搜索. 1.C 语言中 extern 关键字详 ...

  4. c语言中extern变量,C语言中的Extern用法

    C语言中的Extern用法 (2010-07-28 12:50:39) 标签: 杂谈 分类: 技术 C语言中的Extern用法 网上有很多帖子问C语言中Extern的用法,而且回答的详细程度各尽不同. ...

  5. C语言中extern的用法--转

    http://blog.sina.com.cn/s/blog_52deb9d50100ml6y.html 在C语言中,修饰符extern用在变量或者函数的声明前,用来说明"此变量/函数是在别 ...

  6. C语言中extern修饰符的用法

    在C语言中,修饰符extern用在变量或者函数的声明前,用来说明"此变量/函数是在别处定义的,要在此处引用". 0. extern修饰变量的声明.举例来说,如果文件a.c需要引用b ...

  7. C语言中extern用法详解

    在C语言中,修饰符extern用在变量或者函数的声明前,用来说明"此变量/函数是在别处定义的,要在此处引用".  1. extern修饰变量的声明. 举例来说,如果文件a.c需要引 ...

  8. C/C 语言中extern的用法

    声明外部变量 现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部.下面举一个简单的例子.创建一个工程,里面含有A ...

  9. C语言中extern的作用

    1.声明外部的变量 由于编译是对单个的文件进行编译,所以在编译一个a.cpp文件的时候,若是要在a.cpp中使用b.cpp中的变量,直接使用则编译肯定会报错的,所以这个时候应该用extern修饰在a. ...

  10. c语言中extem的作用,extern是什么意思?C语言中extern用法全解

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

最新文章

  1. PIL、Pillow安装使用方法
  2. texturepacker使用心得
  3. Raspberry Pi 4B 循迹模块
  4. DefaultHashOperations multiget的一个坑
  5. 扩展Snackbar 使其支持居中显示
  6. 中间件技术及双十一实践·服务框架篇
  7. 计算机发展英语思维导图,怎样画出英语课文总结思维导图
  8. 广告创意还是侮辱女性?全棉时代卸妆巾广告被骂上热搜......
  9. SpringBoot实战(六):Redis Pipeline 轻松实现百倍性能提升
  10. 微软全力推广Silverlight 挑战Flash垄断地位
  11. 【经验分享】学长,我也想考清华!
  12. web前端实习一个月的心得体会
  13. Google Earth Engine —— LandTrendr JavaScript 模块API(2万多字长文)
  14. 怎样测试手机性能软件,如何检测手机性能的软件
  15. 武林外传私服服务器制作,自己修改的YY朱武林外传服务端+架设工具+完整补丁...
  16. Unity3D接入第三方插件之微信登录安卓SDK
  17. B-样条曲线——动机 Motivation
  18. java游戏开发杂谈 - 实现游戏主菜单
  19. java赛马游戏,用JAVA语言实现赛马游戏
  20. 搜狗壁纸停运了,但我还是想推荐它……(附个人的一点想法)

热门文章

  1. python读取xlsx格式中的数据
  2. Android 拍照自动识别手机号 | OCR
  3. python定时播放音乐程序_Python实例讲解 -- 定时播放 (闹钟+音乐)
  4. Navicat连接Linux服务器的mysql出现连接不上的问题
  5. Wein2K入门操作(1)
  6. 杰理之跳转SD卡升级【篇】
  7. python variables_Python variables.PartitionedVariable方法代码示例
  8. ASP.NET 企业微信:URL验证、接收消息、回复消息、消息加解密
  9. 计算机病毒学课本,计算机病毒实验教程
  10. ps钢笔工具隐藏的知识。