变量存储类型
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