您的位置:首页 > 编程语言 > C语言/C++

C语言学习笔记 类型修饰符

2016-01-29 19:37 363 查看
类型修饰符 :对内存资源存放位置的限定。

关键字:auto、register、static、const、extern、volatile

1、auto :默认实现的,auto int a;默认分配的内存区域都是可读可写的区域。如果auto所在 { } 内,则数据存储在栈空间中。

2、register :限制变量定义在寄存器上的修饰符,CPU上的寄存器。读取速度快。

用途 定义一些快速访问的量。

但是,编译器会尽量的安排CPU的寄存器去存放修饰的变量,如果CPU寄存器已经满了,则数据将会存在存储器中。

&(取地址)对register 修饰的变量是不合法的,不起作用的。

int a;

register int a;

用vim编译器 测试一下结果

然后用gcc 编译器编译一下 gcc -o build 001.c

出现了一个waining

暂时不管它,继续运行 ./build 去执行 生成的build,就能看到a1的地址。

修改程序,测试一下register是否真的不能读取地址。

发现 有error ,说明rigister 修饰的参数不能被读取地址。

3、static 静态修饰符,修饰以下变量:

(1) 函数内部的变量(2)函数外的变量;(3)函数

4、extern 外部声明

5、const 常量的定义,修饰只读的变量,但是通过某些方法也能改变常量

6、volatile 修饰不优化编译的关键字。 修饰变量值的修改,不仅仅可以通过软件,而且还通过其他方式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: