Chinaunix首页 | 论坛 | 博客
  • 博客访问: 435186
  • 博文数量: 122
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 688
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-04 12:30
文章分类

全部博文(122)

文章存档

2017年(5)

2016年(4)

2015年(56)

2014年(41)

2013年(16)

我的朋友

分类: C/C++

2013-09-04 20:31:03

继续总结关键字的作用,和小伙伴们一起分享。本文仅对 volatile 的作用进行解析,另外几个,小编会陆续发出。

    一个定义为 volatile 的变量是指这个变量有可能会被意想不到的改变。声明为 volatile 后,编译器就不会在编译时对这个变量进行优化。
即,每次使用这个变量的时候,都会重新读取这个变量的值,而不会使用保存在寄存器里的备份。例如:
(1)并行设备的硬件寄存器(如状态寄存器)需要声明为 volatile
(2)一个中断服务子程序中会访问到的非自动变量需要声明为 volatile
(3)
多线程应用中被几个任务共享的变量。

    一个参数既可以是const,又可以是volatile,例如只读的状态寄存器,它是 volatile 是因为它会被意想不到的改变,是 const 是因为只读的状态寄存器不应该被改变。
    一个指针也可以是 volatile,例如一个中断服务子程序中修改一个指向buffer的指针,该指针应该声明为 volatile。
阅读(1252) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~