C语言------存储类说明符

        C语言中有5个作为存储类说明符的关键字,它们是auto,register,static,extern.typedef.关键字typedef与内存存储无关,由于语法原因被归入此类.特别的,不可以在一个声明中使用一个以上存储类说明符,这意味着不能将其他任一存储类说明符作为typedef的一部分.

        说明符auto表明一个变量具有自动存储时期.该说明符只能用在具有代码块作用域的变量声明中,而这样的变量已经拥有自动存储时期,因此它主要是用来明确指明意图,使程序更易读.

         说明符register也只能用于具有代码块作用域的变量.它将一根变量归入寄存器存储类,这相当于请求将该变量存储在一个寄存器内,以更快的存取.它的使用也使你不能获得该变量的地址.

         说明符static在用于具有代码块作用域的变量的声明时,使该变量具有静态存储时期,从而得以在程序运行期间(即使在包含该变量的代码块并没有运行时)存在并保留其值.变量仍具有代码块作用域和空链接.static用于具有文件作用域的变量的声明时,表明该变量具有内部链接.

         说明符extern表明你在声明一个已经在别处定义了的变量.如果包含extern的声明具有代码块作用域,所指向的变量可能具有外部链接也可能具有内部链接,这取决于该变量的定义声明

         

        复杂的C程序往往使用多个独立的代码文件,有些时候需要共享一个外部变量,也就是说,除了一个声明(定义声明外),其他所有声明都必须使用关键字extern,并且只有在定义声明中才可以对该变量进行初始化.

         注意: 除非在第二个文件中也声明了该变量(通过使用extern),否则在一个文件中定义的外部变量不可以用在第二个文件.一个外部变量声明本身只是使一个变量可能对其他文件可用.


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值