C语言的变量存储类型与特征修饰

本文详细介绍了C语言中变量的不同存储类型(auto、static、register、extern)、const和volatile的特性,以及变量的访问方式。重点讲述了这些特性对内存管理和CPU访问的影响。
摘要由CSDN通过智能技术生成

变量存储类型

1,auto如果定义变量时,没有写存储类型,默认都是auto,修饰局部变量,存放在栈中。

2,static 可以修饰局部变量与全局变量,局部变量修饰完毕后可以延长生命周期,在函数结束后仍然存在,全局变量使用后可以在当前文件/进程中使用,蹲在data区

3,register 只能存储整型的变量,在cpu的r1....寄存器中,且不可以进行取地址,因为r。。。寄存器无地址

4,extern 例如在一个文件中已经定义了一个全局变量,内存已经为其开辟了相对的空间,此时如果想再另一个内存中再次的调用这个变量,在文件中的变量定义中加上extern,可以不必再开辟一个变量,由于只有全局变量才能进行跨文件调用,因此extern用来修饰全局变量

修饰特征

const 内存中的变量变成只读形式,不可更改(指针仍然可以),不是变为常量,仍然是变量。

C语言的变量访问

变量访问两种形式(1读变量内存———》cpu,2写变量cpu--》内存)

cpu存值,内存存变量,cpu把存的值放到内存中。但是cpu访问内存十分的时间。

volatile,用来修饰cpu的访问效率,当一个内存中的变量无需再次被cpu冲内存中读取时,可以优化(不可优化时,是因为该变量被改变包括但不限于中断,多线程,硬件寄存器),当位于不可优化的情况下,需要告诉编译器变量是易变的,不要优化,每次读取都去内存都,不要走cpu

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值