c++关键字

static, auto, register, extern,volatile这些关键字的区别,“externc”的意思是什么,面试官不停的追问为什么,为什么。


auto:具有自动存储期的变量在进入声明该变量的程序块时被建立,它在该程序块活动时存在,退出该程序块时撤销。在函数内部定义的变量成为局部变量。

在c语言中 auto 被解释为一个自动存储变量的关键字,也就是申明一块临时的变量内存。
在c++11之前auto关键字同上,但是在最新的c++11语法中被定义为自动推断变量的类型。例如:
auto x=5; //这里的x被推断为int 类型。
不过这里使用auto关键字时有一个限定条件,那就是必须给申明的变量赋予一个初始值,否则编译器在编译阶段将会报错。


register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。


volatile的作用: 作为指令 关键字,确保本条指令不会因 编译器的优化而省略,且要求每次直接读值.
volatile是一个类型 修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的 变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么 编译器失去大量优化的机会。



extern:不论声明多少次,位于几个源文件中,都表示同一实体。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值