关注
#嵌入式笔面经分享#
海康公司嵌入式硬件面经(第x面)
时间:6月30日-6月30日
时长:40分钟
面试内容:
【问】介绍一下static关键字的作用
【答】static可以修饰全局变量、局部变量和函数。分别有以下作用:
全局变量:使全局变量对外部文件不可见。(隐藏)
局部变量:使局部变量存储在全局静态区,只初始化一次,函数结束后可一直存在,可在函数内修改。(更改存储区域&延长生命周期)
修饰函数,表明函数的作用范围,仅当前.c文件内可被调用,对外不可见。(隐藏)
【解析】
全局变量
全局变量本身就存在于全局静态区,static关键字的作用是隐藏,更改全局变量的作用域。
为什么要隐藏呢?
有的是考虑到重名的因素,但我个人认为还有一点是比较重要的,那就是处于安全的考虑。
比如有一个c文件名为Trusty.c,里面定义了各种对于用户密码的操作,由一个名为安全小组的团队维护。
那么我们知道,用户密码肯定是存放在一个全局变量PassWord中,方便各个函数调用操作。
PassWord在这个Trusty.c可以随意被调用,因为是由安全小组内部维护的,可以保证安全性。
但是,如果另外模块得知了PassWord这个变量名,就可以随意调用。
那么缺乏保护措施的另一个模块,很容易泄漏PassWord的内容,导致最重要的密码被窃取!这是绝对绝对不可以的!
此时就可以在Trusty.c中定义一个静态全局变量来对外部隐藏PassWord变量啦。
static char PassWord[10] = "XiaoYu666";
局部变量
static修改局部变量主要是延长生命周期。
我们都知道,局部变量原本就有隐藏作用,仅对当前函数可见。
同时局部变量原本是存放在内存中的栈区,每次进入函数时创建,退出函数时销毁。
使用static修改局部变量后,将局部变量从栈区移至全局静态区,其生命周期为一直存在。
所以是更改存储区域导致的生命周期延长。
面试总结:重视面试八股文
点赞
相关推荐
点赞 评论 收藏
分享
投递基恩士等公司10个岗位 >
点赞 评论 收藏
分享
牛客热帖
正在热议
# 机械人,你投提前批了吗? #
11179次浏览 129人参与
# 互联网公司评价 #
235105次浏览 2982人参与
# 广发卡校招来了 #
1257次浏览 6人参与
# 国央企求职进展汇总 #
23602次浏览 102人参与
# 寒假躺平还是提前实习 #
18378次浏览 61人参与
# 比亚迪求职进展汇总 #
376892次浏览 2100人参与
# 正浩创新校招 #
8912次浏览 119人参与
# 在国企工作的人,躺平了吗? #
223151次浏览 3146人参与
# 你怎么评价今年的春招? #
61832次浏览 1003人参与
# 比亚迪秋招开啦,你打算投递吗? #
6239次浏览 95人参与
# 你觉得实习只能是打杂吗? #
11979次浏览 109人参与
# 职场新人生存指南 #
161857次浏览 4953人参与
# 你的简历改到第几版了 #
600801次浏览 8935人参与
# 国企还是互联网,你怎么选? #
59355次浏览 497人参与
# 如果实习可以转正,你会不会放弃秋招 #
128974次浏览 1838人参与
# 通信硬件薪资爆料 #
409809次浏览 3353人参与
# 你的实习什么时候入职 #
42609次浏览 421人参与
# 写简历别走弯路 #
560222次浏览 6985人参与
# 如何写一份好简历 #
534711次浏览 7828人参与
# 影石Insta360求职进展汇总 #
77847次浏览 764人参与
# 硬件人的简历怎么写 #
191918次浏览 2524人参与
# 实习想申请秋招offer,能不能argue薪资 #
12308次浏览 121人参与