2017年8月3日,总结一下volatile 这个关键字,顺便复习一下C语言中的 32个关键字。
volatile:说明变量在程序执行中可被隐式的改变。易变的,稳定的,用来声明那些可能在你的程序本身不知道的情况下会发生改变的变量。
作用:避免被编译器优化。
对于一般变量,当读取它的值的时候,为了提高存取速度,优化器会把变量先读取到一个寄存器中;以后再取变量的值时候,直接从寄存器中取值,而不是重新读取这个变量的值。
对于一个参数既可以是const也可以是volatile;eg:只读的状态寄存器,const是程序不应该试图去修改它,是volatile 因为它可能会被意想不到的改变。
多线程应用中被几个任务共享的变量。
下面转载自 http://blog.csdn.net/wangfeitaozhijia/article/details/38325997
一、C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。
1 、数据类型关键字(12个):
(1) char :声明字符型变量或函数 (2) double :声明双精度变量或函数 (3) enum :声明枚举类型
(4) float:声明浮点型变量或函数 (5) int: 声明整型变量或函数
(6) long :声明长整型变量或函数 (7) short :声明短整型变量或函数 (8) signed:声明有符号类型变量或函数 (9) struct:声明结构体变量或函数 (10) union:声明共用体(联合)数据类型
(11) unsigned:声明无符号类型变量或函数 (12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
2、控制语句关键字(12个):A循环语句 (1) for:一种循环语句(可意会不可言传) (2) do :循环语句的循环体 (3) while :循环语句的循环条件 (4) break:跳出当前循环 (5) continue:结束当前循环,开始下一轮循环 B条件语句 (1)if: 条件语句 (2)else :条件语句否定分支(与 if 连用) (3)goto:无条件跳转语句 C开关语句 (1)switch :用于开关语句 (2)case:开关语句分支 (3)default:开关语句中的“其他”分支 D返回语句return
:子程序返回语句(可以带参数,也看不带参数)
3、 存储类型关键字(4个)(1)auto :声明自动变量 一般不使用 (2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)
(3)register:声明积存器变量 (4)static :声明静态变量
4、 其它关键字(4个):(1)const :声明只读变量 (2)sizeof:计算数据类型长度 (3)typedef:用以给数据类型取别名(当然还有其他作用 (4)volatile:说明变量在程序执行中可被隐含地改变
二、C语言中的9中控制语句goto语句:无条件转向;
if语句:判断语句; while循环语句; do-while语句:先执行循环体,然后判断循环条件是否成立. 之后继续循环; for语句:循环,可替代while语句; 只是用法不同;break语句跳出本层的循环;(只跳出包含此语句的循环)
continue语句:继续(一般放到循环语句里,不在执行它下面的语句,直接跳到判断语句例:for语句,就直接跳到第二个分号处,while语句,就直接跳到while()的括号里; switch语句:多相选择; return语句:返回;