Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(3) 理解static、register、volatile、const、extern关键字

本文详细介绍了C/C++编程中的几个关键关键字:static用于实现局部变量持久化和限制全局变量的作用域;register尝试将变量存储在CPU寄存器以提高效率,但编译器可能不遵循;volatile用于多线程和硬件交互场景,确保每次读取变量的最新值;const用于创建只读变量,提供类型安全;extern则用于声明在其他文件中定义的变量或函数。
摘要由CSDN通过智能技术生成

这几个关键字是C语言面试常考知识点。面试时最好过一下,防止一时脑回路跟不上,不小心翻车。

1、static作用

第一、static修饰的静态局部变量只执行一次初始化(即再次进入时不会重新赋值),而且延长了局部变量的生命周期,直到程序运行结束以后才释放,但其作用局仍为局部。
第二、static修饰的全局变量和函数只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。
第三、无论是修饰全局还是局部,如果没有进行初始化,其默认值为0。

隐藏与隔离的作用
在实际开发时,仅在模块内部使用的全局变量和函数通常声明为static,防止被模块外部调用或者产生重名等干扰。
保持变量内容的持久性
有时候,我们希望函数中局部变量的值在函数调用结束之后不会消失,而仍然保留其原值。即它所占用的存储单元不释放,在下一次调用该函数时,其局部变量的值仍然存在,也就是上一次函数调用结束时的值。这时候,我们就应该将该局部变量用关键字 static 声明为“静态局部变量”。

2、register

作用
用于定义一个寄存器变量,这个关键字请求编

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值