广而告知: 博客写得好,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修饰之后的函数,就只有内部属性,也就是只能在本文件内被嵌套调用使用。
继续搬砖吧!
最后,请各位发财的金手指,据说点赞的都找到女朋友了,帮忙点点赞和关注!
💁♂️💁♀️🙋🙋♂️🙋♀️🧏🧏♂️一赞三连🧏♀️🙇🙇♂️🙇♀️🤦🤦♂️🤦♀️🤷🤷♂️🤷♀️
💁♂️💁♀️🙋🙋♂️🙋♀️🧏🧏♂️一赞三连🧏♀️🙇🙇♂️🙇♀️🤦🤦♂️🤦♀️🤷🤷♂️🤷♀️
💁♂️💁♀️🙋🙋♂️🙋♀️🧏🧏♂️一赞三连🧏♀️🙇🙇♂️🙇♀️🤦🤦♂️🤦♀️🤷🤷♂️🤷♀️