C语言-外部关键字extern

这篇具有很好参考价值的文章主要介绍了C语言-外部关键字extern。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

extern 关键字

 extern 用在全局变量或函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用。

 什么是定义,什么是声明?
      什么是定义:所谓的定义就是为这个变量分配一块内存并给它取上一个名字,这个名字就是我们经常所说的变量名。但注意,这个名字一旦和这块内存匹配起来,它们就同生共死,终生不离不弃,并且这块内存的位置也不能被改变。一个变量在一定的区域内(比如函数内,全局等)只能被定义一次,如果定义多次,编译器会提示你重复定义同一个变量或对象。
什么是声明: 有两重含义,如下:
第一重含义: 告诉编译器,这个名字已经匹配到一块内存上了。
第二重含义: 告诉编译器,我这个名字我先预定了,别的地方再也不能用它来作为变量名。记住,定义和声明最重要的区别: 定义创建了对象并为这个对象一块内存,而声明的时候是没有分配内存空间的。

声明是不开辟内存的,定义是开辟内存的

 文章来源地址https://www.toymoban.com/news/detail-469072.html

外部变量(全局变量)extern----全局静态存储区

标准定义格式:extern 类型名 变量名;

extern int i; //是声明,不是定义,没有分配内存
int i; //是定义

 示例1:

extern 可以声明一个变量,使得该变量是来自其他文件的变量在本文件可以被访问。

比如:创建两个文件 test.c 和 main.c文件;
在test.c文件中定义一个全局变量:

//test.c
int i = 20; //定义一个全局变量

在main.c文件,声明变量 i;

main.c文件
# include<stdio.h>
extern int i; //声明变量i,当编译链接时候,main.c文件就可以访问到test.c文件的i的值了;
int main()
{
	printf("%d",i);
	return 0;
}

这样我们就可以跨文件(test.c),在本文件(main.c)访问这个变量了;

 示例2:

C语言-外部关键字extern

示例三:

C语言-外部关键字extern

 

到了这里,关于C语言-外部关键字extern的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C语言】for 关键字

    🚩WRITE IN FRONT🚩    🔎介绍:\\\"謓泽\\\"正在路上朝着\\\"攻城狮\\\"方向\\\"前进四\\\"🔎 🏅荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2022博客之星TOP100|TOP63、阿里云专家博主、掘金优秀创作者、全网粉丝量5w+、全网访问量70w+🏅 🆔本文章内容由 謓泽 原创 如需相关转载

    2023年04月17日
    浏览(38)
  • C语言volatile关键字

    在C语言中, volatile 是一个类型修饰符,用于告诉编译器对象的值可能会在编译器无法检测到的情况下被改变。这通常发生在以下两种情况: 硬件的输入/输出操作,例如一个设备寄存器的读取或写入。 共享内存的并行程序,其中一个线程修改了一个内存位置,而另一个线程

    2024年02月07日
    浏览(54)
  • 【solidity三】Solidity中继承、创建合约和外部调用、合约事件event、solidity中元祖的使用、new、delete关键字的使用、solisity创建合约和外部调用

    - 最重要的两个全局变量 msg.sender 每一次和以太坊交互时都会产生一笔交易,这笔交易的执行人就是msg.sender。简而言之:谁调用的,msg.sender就是谁,每笔交易的msg.sender都可以不同。举例: 部署合约的时候,msg.sender就是部署的账户。 调用setMessage时,msg.sender就是调用账户。

    2024年02月03日
    浏览(45)
  • 【C语言】static关键字详解

    目录 1.static是什么? 2.static修饰的对象是? 3.static修饰后改变了什么? 4.static修饰操作演示 (1) 局部变量 如果加了static修饰局部变量i会怎么样? 全局区(静态区) (2) 全局变量 如果给全局变量加上了static修饰呢? 二者区别?  这样用有什么用? (3) 函数 5.总结

    2024年02月10日
    浏览(45)
  • C语言之static关键字详解

     前言: 一、几个概念 1.变量 2.局部变量和全局变量 3.变量的作用域 4.变量的生命周期 二、static的作用 三、static修饰局部变量 四、static修饰全局变量  五、static修饰函数  写在最后:            static,英文意思静态的,作为C语言常用中一

    2024年02月03日
    浏览(42)
  • 前端学习C语言 - 函数和关键字

    本篇主要介绍: 自定义函数 、 宏函数 、 字符串处理函数 和 。 基本用法 实现一个 add() 函数。请看示例: 其中a, b 叫 形参 ,num1, num2 叫 实参 。 Tip :形参和实参的个数不同,笔者编译器报错如下(一个说给函数的参数少,一个说给函数的参数多了): 函数调用过

    2024年02月09日
    浏览(56)
  • C语言操作符和关键字

    C语言中,0表示假,非0表示真 sizeof ++ (类型)强制类型转换 d的结果就是: static修饰局部变量 static修饰全局变量 static修饰函数

    2024年04月28日
    浏览(44)
  • C语言标准定义的32个关键字

    欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。 专栏:《精通C语言》 C语言中的数据类型主要有下面

    2024年02月13日
    浏览(52)
  • [开发语言][c++]:Static关键字和全局变量

    写在前面: 如果您只是想回顾或了解一下static和全局变量的异同点,那么下面的总结将满足您的需求。 如果您是一位初学者或对二者的使用模棱两可,建议您读完该篇文章,相信这一篇将解答完您对于static以及全局变量的所有疑惑。 如有问题或建议欢迎评论 or 私信

    2024年01月20日
    浏览(57)
  • 【C语言】静态关键字static的用法(详解)

     🎈个人主页:库库的里昂  🎐CSDN新晋作者  🎉欢迎 👍点赞✍评论⭐收藏  ✨收录专栏:C语言初阶  ✨其他专栏:代码小游戏  🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗 【前言】 不同于其他,他们都有多种用

    2024年02月14日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包