你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 5381|回复: 97

【3.30签到】每日问答——关键字volatile有什么含意?

   关闭 [复制链接]
回帖奖励 103 ST金币 回复本帖可获得 1 ST金币奖励! 每人限 1 次

315

主题

253

回帖

0

蝴蝶豆

论坛元老

最后登录
2017-12-7
发表于 2016-3-30 08:47:01 | 显示全部楼层 |阅读模式
29日问题答案
问:关键字const有什么含意?
答:1)表示常量不可以修改的变量。
      2)可以修饰参数,作为输入参数.
      3)修饰函数,防止以外的改动.
      4)修饰类的成员函数,不改变类中的数据成员.

------------------------------------------------------------------------------------------------------------
今日问题
问:关键字volatile有什么含意?

-------------------------------------------------------------------------------------------------------------
回复

使用道具 举报

5

主题

115

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-2-12
发表于 2016-3-30 08:56:54 | 显示全部楼层

回帖奖励 +1 ST金币

一般说来,volatile用在如下的几个地方:

1、中断服务程序中修改的供其它程序检测的变量需要加volatile;

2、多任务环境下各任务间共享的标志应该加volatile;

3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;

另外,以上这几种情况经常还要同时考虑数据的完整性(相互关联的几个标志读了一半被打断了重写),在1中可以通过关中断来实
现,2中可以禁止任务调度,3中则只能依靠硬件的良好设计了。
回复 支持 1 反对 0

使用道具 举报

60

主题

2051

回帖

31

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2016-3-30 08:48:36 | 显示全部楼层

回帖奖励 +1 ST金币

                        
回复 支持 反对

使用道具 举报

2

主题

124

回帖

0

蝴蝶豆

高级会员

最后登录
2019-11-6
发表于 2016-3-30 08:50:01 | 显示全部楼层

回帖奖励 +1 ST金币

定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了
回复 支持 反对

使用道具 举报

14

主题

613

回帖

11

蝴蝶豆

金牌会员

最后登录
2020-12-8
发表于 2016-3-30 08:50:07 | 显示全部楼层

回帖奖励 +1 ST金币

回复 支持 反对

使用道具 举报

1

主题

1065

回帖

1

蝴蝶豆

金牌会员

最后登录
2020-11-9
发表于 2016-3-30 08:51:35 | 显示全部楼层

回帖奖励 +1 ST金币

回复 支持 反对

使用道具 举报

8

主题

972

回帖

45

蝴蝶豆

金牌会员

最后登录
2020-10-1
发表于 2016-3-30 08:52:28 | 显示全部楼层

回帖奖励 +1 ST金币

签到              
回复 支持 反对

使用道具 举报

1

主题

32

回帖

3

蝴蝶豆

中级会员

最后登录
2020-12-4
发表于 2016-3-30 08:53:32 | 显示全部楼层

回帖奖励 +1 ST金币

volatile 是直接寄存器读取值的意思,防止在编译过程中编译器对其进行自动优化。
比如
int a;
a = 5;
a=6;
a=7;

这三行语句执行完a的值为7. 但是编译器可能会自动省略a=5 a=6这两句。

如果是 volatile int a;
a = 5;
a=6;
a=7;
这三行语句执行完a的值为7. 但是编译器不会会自动省a=5  a=6这两句。

同理 如果是读取IO电平,系统每次都会读取IO输入寄存器。不会为了效率而进行优化
回复 支持 反对

使用道具 举报

77

主题

1927

回帖

5

蝴蝶豆

论坛元老

最后登录
2020-11-18
发表于 2016-3-30 08:54:54 | 显示全部楼层

回帖奖励 +1 ST金币

回复 支持 反对

使用道具 举报

11

主题

583

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-12-9
发表于 2016-3-30 08:57:38 | 显示全部楼层

回帖奖励 +1 ST金币

签到签到~~~
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版