首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
牛客294429366号
扬州大学 嵌入式软件开发
关注
已关注
取消关注
@无情的感谢信收割机_:
static关键字详解
对于static关键字,从学C语言来就一直没理清过,究其原因还是因为网络很多的帖子只是列举了static的各种用法,并没有说明原因,导致压根记不住。最近研读了《c和指针》,才终于算是搞清楚了static,不由得感慨一句:经典终归是经典啊。首先需要明白两个概念:标识符的链接属性和变量的存储类型。标识符就是程序中各种元素的名称,所以变量、函数这些都是标识符。标识符有三种连接属性: external(外部)、internal(内部)和 none(无)。具有external链接属性的标识符,在本项目的所有源文件中都表示一个实体。在程序块外部定义的变量缺省就是external属性,所以其他源文件内就不可以在定义与之同名的变量,但是可以使external关键字来获得这个实体变量。具有internal链接属性的标识符在同一源文件的所有声明都指向同一实体、在不同源文件的多个声明则分属于不同实体。具有none链接属性的标识符总是被当作独立不同的实体。像在代码块中定义的变量缺省就是none。链接属性介绍完了,在介绍存储类型之前,开始今天的主角了,static关键字在链接属性中的作用是什么答:static关键字可以把具有 external链接属性的变量改为 internal链接属性。这也是具有internal链接属性变量的唯一来源。但是值得注意的是:static只对缺省链接属性为external的声明才具有改变链接属性的作用,而缺省链接属性为external一般都是定义在代码块之外的全局变量、函数等,所以在全局变量、函数等的前面加上static的作用就是将其链接属性由external改为internal,就可以使该全局变量、函数只在本文件中使用,为本文件私有,其他源文件可以以定义同名的变量和函数了。这种技巧也被称为“防止污染命名空间”。好了,让我们继续介绍另一个概念:存储类型。存储类型有三类:静态(static)、自动(auto)、寄存器(register)。声明在代码块之外的变量默认就是静态存储类型,在程序运行之前创建,整个程序执行期间都存在。在代码块内部声明的变量缺省是自动存储类型,存放在堆栈中,执行到声明语句才被创建,程序运行到代码块之外就销毁。寄存器存储类型就是用register关键字声明的,在硬件寄存器中处理的变量,用得较少不过多介绍。在存储类型中,static关键字的作用就是把自动存储类型的、在代码块内部声明的变量改变为静态存储类型,使其整个程序执行期间都存在。勘误∶当全局变量使用const修饰时,也会将其缺省的external连接属性修改为internal,只能在本文件中使用。想要使其在其他文件也可使用,就必须在定义的时候加上extern关键字了extern const int a = 1;
点赞 6
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
昨天 19:33
已编辑
华南师范大学 Java
27暑期字节后端
一面:自我介绍拷打项目项目1 MongoDB相对于MySQL的优势 RAG流程 如果提问的与知识库不相关怎么办项目2 session共享的问题 优惠券秒杀的流程 Lua脚本里干了什么八股 redis中zset的底层 zset插入和查询的时间复杂度 redis为什么快 redis io多路复用如何实现 redis的性能瓶颈在哪里:面试官让在内存、cpu、网络io中选 MySQL中的索引实现 B+树比B树好在哪里?为什么B+树更矮 事务隔离级别 mysql的默认级别 可重复读是如何实现的:回答了读视图,面试官纠正说了读视图的专业名词 HTTPS和HTTP的区别 加密算法,直接不会 TCP的三次握手...
查看25道真题和解析
点赞
评论
收藏
分享
02-25 13:02
中南大学 C++
简历求拷打
佬们看看这个简历可以冲大厂吗
竹秋拾:
我建议985加大加粗
点赞
评论
收藏
分享
03-27 10:01
西安邮电大学 golang
美团是不是只要java呢
这个是流程终止了吗
点赞
评论
收藏
分享
03-27 15:20
华南理工大学 算法工程师
关于最近这一个月面试的一些感受
本人大三,在找日常(暑期)实习,年后这一个月面了几家大厂,但都挂了,有的直接在初筛阶段就给我踢了。最好的就是字节进了二面(字节实习生一般三轮:技术面、主管面、HR 面),二面结束以后我过几个小时就点开邮件看看,心想这次一定要拿下,如果能进 HR 面的话基本就稳了。我面完当天晚上做梦都梦到拿到了 offer 给我乐醒了,打开手机一看原来是梦。第二天打开邮件收到了感谢信,心情直接跌到谷底。这几天一直在自我怀疑,就在想每天这起早贪黑的,睁眼闭眼就是算法代码,到头来还是一场空,真觉得挺没意思的。我的性格一直比较要强好胜,我太想要一个机会来证明自己,但是没有办法,无论是我的学历,学校,还是学术项目,竞赛...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
Vibe Coding开发前的 7 个关键步骤
6721
2
...
我放弃互联网大厂了。。
5398
3
...
字节实习一、二、三、HR面面经
3907
4
...
双非前端字节一面面经(难度 plus ultra 版)
3406
5
...
4.1 美团后端暑期实习面经
3293
6
...
京东零售平台产品与研发中心一面
3046
7
...
美团后端暑期实习一面
2600
8
...
美团暑期二面
2545
9
...
如何把面试主动权握在手里?Ai岗面试焚诀!
2545
10
...
我招了!当年就是被招行这么招进去的
2389
创作者周榜
更多
正在热议
更多
#
你觉得大几开始实习最合适?
#
12065次浏览
123人参与
#
你都用vibe coding做过什么?
#
6822次浏览
249人参与
#
招商银行数字金融训练营
#
69759次浏览
805人参与
#
面试被问到不会的问题,你怎么应对?
#
10577次浏览
92人参与
#
你现在一天AI几次?
#
5421次浏览
70人参与
#
你见过哪些招聘隐形歧视?
#
8696次浏览
76人参与
#
开放七大实习专项,百度暑期实习值得冲吗
#
31537次浏览
591人参与
#
Vibe Coding 会干掉初级岗位吗?
#
10222次浏览
144人参与
#
AI Coding实战技巧
#
3984次浏览
104人参与
#
做完笔试后你收到面试了吗?
#
11673次浏览
105人参与
#
大厂实习和小厂实习最大的区别是什么?
#
20981次浏览
152人参与
#
如果人生可以debug你会改哪一行?
#
4638次浏览
86人参与
#
牛友の3月总结
#
14933次浏览
135人参与
#
秋招OC许愿
#
425027次浏览
2705人参与
#
金融财经春招备战日记
#
60761次浏览
253人参与
#
面试中,你被问过哪些奇葩问题?
#
91747次浏览
857人参与
#
uu们,春招你还来吗?
#
51692次浏览
254人参与
#
面试吐槽bot
#
182935次浏览
874人参与
#
节后第一天上班,我的精神状态
#
19925次浏览
139人参与
#
降低公积金和取消房补怎么选
#
29630次浏览
90人参与
#
七猫笔试
#
6136次浏览
44人参与
#
Claude Code泄露源码
#
3767次浏览
58人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务