浅谈C语言中的数据存储类型

由于本人近些日高强度的笔试题训练和C语言学习,备受摧残。作为一个小白有太多的内容不会与不了解。不过通过一些努力。还是对于有关C语言中的数据存储类型有了一些拙见。

主要有如下的四种存储类型分别举例来谈:

auto

几乎平常的定义的数据前面都有这个单词,为什么他的存在感不高呢,原因是在大多数情况下它都是可省的,不出现在代码中。虽然看不见但是他也是在默默为我们背负了太多。当定义的变量是局部变量时,一旦程序运行超过当前的作用域时,则此变量就被隐藏或者自动释放了,主要时在栈空间上的操作。

static 静态变量

静态变量的声明。此种变量一旦被声明,就像冬日的暖气,夏日的空调可以说是陪伴你走过每一个艰难困苦的日子。所以静态变量在程序第一次给他赋值以后,即使变量所在的函数实行完它也不会被释放(风里雨里我一直陪你)。他的生命周期是整个程序的运行周期。

不难发现在某些功能与作用上,它与全局变量有些相似。其实二者区别也有不少

普通的全局变量,在所用的当前文件中可以被一直使用,而且其他文件也可以利用extern关键字进行引用并使用。如果我们将全局变量使用static声明他就也只能给本文件内的程序使用了。

static说到底它主要是为你定义的变量无论是全局还是普通变量“提升档次”,如果你是一个不起眼的可怜普通变量那么把其变成“人上人”。除非公司黄了要不你就一直领工资。如果你本来就是“多面手”,有一身才识没有落脚之地。那么就为其提供一个“住所”,物尽其用。

register 寄存器变量

要求编译器尽可能的把变量存储到CPU的内部寄存器当中,避免使用内存寻址的方式来访问数据目的是提高编译效率。但是呢也仅仅到暗示的程度,就像快递不到,你怒火中烧联系商家要求他们催促快递或者打电话给快递公司催促。一般得到的回复都是催促了请您耐心等待。其实来讲你的快递在卡车里,压根没人催促。难道打电话给司机加班加点的跑高速吗。不现实。所以寄存器当收到暗示的时候也是一样的。如果寄存器资源有限,不能完成“暗示”的操作,系统就不会满足你的需求。一碗register变量存取速度比内存快很多,在单片机和一些系统库文件中使用较多。

extern 外部变量

告知编译器你所需要的变量,在其他文件中,如果你需要调用请前往对应文件中调用。

总结:

各类声明各有各的用处,根据编程需要去选择需要的情况去使用

感谢华清远见让我快速熟知C语言,了解其中的奥秘。

未来会更新更多内容....

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值