当前位置:网站首页>static关键字3种作用,简单粗暴对比,好理解
static关键字3种作用,简单粗暴对比,好理解
2022-08-02 14:02:00 【熬夜退役选手337】
1、修饰局部变量——称为静态局部变量
我们通过两组代码的对比来看看加了static关键字的作用:
这个是没有加static的:
对比变量a输出的结果

这是加上static:

我们发现没有加上static的变量a在出test()函数作用域的时候被销毁了,而加上static关键字的变量a在出作用域后变量a仍然保留,所以输出的结果是每次a都加1。上次出作用域a是多少,再次进作用域还是不销毁,仍然保留上次的值。

2、修饰全局变量——称为静态全局变量
我在add.c创建了一个全局变量,在test.c中,通过extern对全局变量g_val进行了声明后,test.c能够正常打印。

若我在变量 g_val前加上static,test.c运行就无法打印变量的值了。

这里可以看到static对全局变量有保护作用。全局变量是有外部链接属性的,加上static关键字后就变成了内部链接属性。加上static后这个全局变量,这个全局变量只能在本源文件.c里面看到,其他的源文件就看不到了
3、修饰函数——称为静态函数
修饰函数和修饰全局变量我觉得是大同小异吧;

加上static,此函数在另一个源文件就无法调用了。
以上就是static的作用;
总结:
1.static修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。
2.一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。
3.一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。
如有帮助,点赞加关注,蟹蟹!!!
如有帮助,点赞加关注,蟹蟹!!!
如有帮助,点赞加关注,蟹蟹!!!
边栏推荐
- Briefly write about the use and experience of PPOCRLabel
- 第十五单元 分页、过滤
- Unit 3 view layer
- Camera Hal(Hal3)层修改Preview流
- Sentinel源码(三)slot解析
- 云GPU(恒源云)训练的具体操作流程
- [ROS] (01) Create ROS workspace
- 瑞吉外卖笔记——第10讲Swagger
- How to solve mysql service cannot start 1069
- What are the file encryption software?Keep your files safe
猜你喜欢
创建ROS工作空间](/img/2a/11e5023ef6d052d98b4090d2eea017.png)
[ROS](01)创建ROS工作空间

paddleocr window10 first experience

Raj delivery notes - separation 第08 speak, speaking, reading and writing

yolov5改进(一) 添加注意力集中机制

Cloin 控制台乱码

Sentinel源码(三)slot解析

The bad policy has no long-term impact on the market, and the bull market will continue 2021-05-19

浅浅写一下PPOCRLabel的使用及体验

跑跑yolov5吧

How does Apache, the world's largest open source foundation, work?
随机推荐
Basic operations of 8583 sequential stack
动态刷新日志级别
瑞吉外卖笔记——第08讲读写分离
Unit 11 Serializers
drf view component
verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第十二章)
drf routing component Routers
replay视频播放器_怎么让手机音乐跟视频一起放
Flask-SQLAlchemy
Building and getting started with the Flask framework
YOLOv7使用云GPU训练自己的数据集
Flask-RESTful request response and SQLAlchemy foundation
海明校验码纠错设计原理
Verilog学习 系列
php开源的客服系统_在线客服源码php
drf序列化器-Serializer
How does Apache, the world's largest open source foundation, work?
The IDEA of packaged jar package
Unit 8 Middleware
yolov5改进(一) 添加注意力集中机制