打印

C语言中Valatile关键字有什么用?

[复制链接]
1049|9
手机看帖
扫描二维码
随时随地手机跟帖
沙发
zhaoxqi| | 2015-6-22 22:19 | 只看该作者
使用Valatile申明的变量是动态变量,每次使用这个变量的值时都必须从对应存储空间取出它的最新值

使用特权

评论回复
板凳
jiahy| | 2015-6-22 22:19 | 只看该作者
是的,而不使用寄存器中的景象。

使用特权

评论回复
地板
lizye| | 2015-6-22 22:19 | 只看该作者

其实就是告诉编译器,不要对此变量进行优化

使用特权

评论回复
5
heweibig|  楼主 | 2015-6-22 22:19 | 只看该作者
哦,明白了

使用特权

评论回复
6
zhangmangui| | 2015-6-23 22:18 | 只看该作者
Valatile的作用   在CCS中起关键作用

使用特权

评论回复
7
vivilzb1985| | 2015-6-25 13:34 | 只看该作者
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。

使用特权

评论回复
评论
feihufuture 2015-12-8 15:00 回复TA
对 
8
vivilzb1985| | 2015-6-25 13:34 | 只看该作者
如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。

使用特权

评论回复
9
vivilzb1985| | 2015-6-25 13:35 | 只看该作者
需要注意的是,没有volatile也可能能正常运行,但是可能修改了编译器的优化级别之后就又不能正常运行了。因此经常会出现debug版本正常,但是release版本却不能正常的问题。所以为了安全起见,只要是等待别的程序修改某个变量的话,就加上volatile关键字。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

869

主题

13089

帖子

7

粉丝