C语言之类型修饰符

auto 默认修饰符

register:

register int a;  //限制变量定义在寄存器上的修饰符


  • 用于定义一些快速访问的变量
  • 编译器会尽量的安排CPU的寄存器去存放这个a,如果寄存器不足时,a还是放在存储器中
  • 取地址符&对register不起作用

内存(存储器);      寄存器

寄存器在cpu中,数据存储其中访问速度很快

数据放在寄存器(内存)中,访问速度相对很慢


static:

应用场景:

(1)不想被释放的时候,可以使用static修饰。比如修饰函数中存放在栈空间的数组。如果不想让这个数组在函数调用结束释放可以使用static修饰 。
(2)考虑到数据安全性(当程想要使用全局变量的时候应该先考虑使用static)。

修饰三种数据:

     1.函数内部的变量(局部变量):static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。 

     2.函数外部的变量(全局变量): 这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。 

          int a ===>static int a

          int fun(){}

     3.函数的修饰符:C语言中,不加static修饰的函数对所有的源文件都是可见的;加static修饰符,则这个函数的只能在本文件中调用,不能被其他文件调用。Static修饰的局部变量存放在全局数据区的静态变量区。初始化的时候自动初始化为0;

           int fun()===>static int fun()

const:

C:       只读,建议性,不具备强制性 !=常量;

C++:   常量。

extern:

extern用在变量或函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。

volatile:

告知编译器编译方法的关键字,不优化编译

修饰变量的值的修改,不仅可以通过软件,也可以通过其他方式(硬件外部的用户)。

猜你喜欢

转载自blog.csdn.net/weixin_42039602/article/details/82227717