C语言基础知识(一)——关键字

存储类别说明符变量:autoregisterstaticextern_Thread_localtypedef

存储类型限定符:constvolatilerestrict_Atomic

1、register—寄存器变量,C语言要求用register修饰的变量通常保存在CPU的寄存器中,防止被编译器优化, 提高运算速度。但是如果CPU内部寄存器已满就会保存在内存中,且无法获取寄存器变量的地址。

2、auto—当局部变量与全局变量同名时,为了强调不要把该变量改为其它存储类别。

3、static—修饰的全局变量只能用于内部链接,修饰的局部变量只能在块中访问,但是块运行结束之后被static修饰的变量却不会被释放,依然存在与内存之中。

4、extern—表明修饰的变量来自外部,要求编译器去其它文件中查找。

5、const—在程序运行时修饰的变量的数据无法改变。对指针使用时,可限定指针本身不能改变或指针指向的数据不能改变,这取决于const在指针声明中的位置。具体参考指针章节

6、volatile—告诉编译器此修饰符声明的变量是易变量,当前程序和其它程序均可对其进行修改,防止编译器进行代码优化。

7、restrict—允许编译器优化某部分代码以更好地支持计算,只能用于指针,表明该指针是访问数据对象的唯一且初始的方式。

                   可用于函数形参中的指针,如满足mencpy要求拷贝的两块内存不重叠。

猜你喜欢

转载自www.cnblogs.com/jiaqinbi/p/11963745.html