volatile

来源:互联网 发布:sql 2008 sa 密码 编辑:程序博客网 时间:2024/06/06 12:34

volatile本意是”易变的“,也就是说volatile修饰的变量随时都可能发生变化,

因为访问寄存器比访问内存快得多,所以编译器一般会做减少内存存取的优化

当访问volatile声明的变量时,总是从它的内存去读取它的值,编译器对该变量的代码就不再进行优化


volatile的作用:

1)、告诉编译器不做任何优化

2)、用volatile声明的变量可能被程序意外的改变,每次都必须从内存中读取,而不能重复使用cache和寄存器的备份


volatile的使用示例:

1)、多任务环境下各任务间共享的变量应该加volatile

2)、存储器映射的硬件寄存器通常也要加volatile,因为每次对它的读写可能有不同的意义

0 0
原创粉丝点击