static跟extern关键字详细解析

广而告知: 博客写得好,Emoji要选好!!🎵 🎶 🔈 🔇 🔉 🔊 🔔 🔕 📣 📢

写博客是知识是巩固和温习,所以在这个信息爆炸的时代,每个人每天都要接收很多讯息,你的记忆是有限的,知识也是有限的,时间也是有限的,既然如此,那是时候磨亮我的五十米大刀了。 你很强,上天揽月你不行,你很强,下海捞鱼总行吧!

💀☠💩🤡👹👺👻👽👾🤖 -->渴望知识!!!

今日主题:

1.Static静态变量 与extern 如何声明全局变量

主题1:static静态变量 与extern 如何声明全局变量

static-->修饰局部变量 :将局部变量原本存储在堆栈区,改成静态存储区。修饰全局变量以及修饰函数。

extern-->用来声明外部符号,如果需要引用别的文件的全局变量(非静态变量),就需要进行对其进行声明操作。 

1)修饰变量

一个变量出了函数之后,依然保留着

他的值,我们就可以把他定义成static变量。

定义一个add.c函数,定义变量名val_value

int vai_value = 200;

定义一个test.c函数,定义全局变量名val_value

extern int vai_value;

使用extern全局操作相当于引用add.c文件的val_value 

按下Fn+F5(笔记本Windows系统)打印一下代码,看效果:

但是如果定义一个add.c函数的时候

static int vai_value = 200;

 

 如果还需要将add.c文件的val_value 引用到test.c文件中

这时候是不允许的。

因为static的定义是只允许定义的变量在其所在的文件也就是add.c文件内使用,所以当val_value再被引用到test.c文件的时候,会出现编译错误。 

这里注意:如果在某些条件下,需要将一些特殊变量只约束在某个文件内使用,防止其他文件使用导致系统性错误的时候,可以使用static来定义。

大家请看当test.c想要引用add.c被定义成static的val_value的时候,是无法编译的

2)修饰函数

拓展一下:

如果使用static修饰函数和修饰变量有什么区别

其实,使用static修饰函数和变量他们之间是没有区别的。

被static修饰之后的函数,就只有内部属性,也就是只能在本文件内被嵌套调用使用。 

继续搬砖吧! 

 

最后,请各位发财的金手指,据说点赞的都找到女朋友了,帮忙点点赞和关注!

💁‍♂️💁‍♀️🙋🙋‍♂️🙋‍♀️🧏🧏‍♂️一赞三连🧏‍♀️🙇🙇‍♂️🙇‍♀️🤦🤦‍♂️🤦‍♀️🤷🤷‍♂️🤷‍♀️

💁‍♂️💁‍♀️🙋🙋‍♂️🙋‍♀️🧏🧏‍♂️一赞三连🧏‍♀️🙇🙇‍♂️🙇‍♀️🤦🤦‍♂️🤦‍♀️🤷🤷‍♂️🤷‍♀️

💁‍♂️💁‍♀️🙋🙋‍♂️🙋‍♀️🧏🧏‍♂️一赞三连🧏‍♀️🙇🙇‍♂️🙇‍♀️🤦🤦‍♂️🤦‍♀️🤷🤷‍♂️🤷‍♀️
 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值