打印
[AI]

Valatile关键字

[复制链接]
1010|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xia00|  楼主 | 2021-11-6 19:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
C语言中Valatile关键字有什么用?

使用特权

评论回复
沙发
hfdy01| | 2021-11-6 19:15 | 只看该作者
使用Valatile申明的变量是动态变量,每次使用这个变量的值时都必须从对应存储空间取出它的最新值

使用特权

评论回复
板凳
CallReceiver| | 2021-11-6 19:20 | 只看该作者
是的,不使用寄存器中的景象。

使用特权

评论回复
地板
boy1990| | 2021-11-6 19:23 | 只看该作者
其实就是告诉编译器,不要对此变量进行优化。

使用特权

评论回复
5
sourceInsight| | 2021-11-6 19:25 | 只看该作者
Valatile的作用   在CCS中起关键作用

使用特权

评论回复
6
bbapple| | 2021-11-6 19:28 | 只看该作者
编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。

使用特权

评论回复
7
handleMessage| | 2021-11-6 19:31 | 只看该作者
如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值。

使用特权

评论回复
8
zhouhuanの| | 2021-11-6 19:38 | 只看该作者
如果这个变量由别的程序更新了的话,将出现不一致的现象。

使用特权

评论回复
9
wanglaojii| | 2021-11-6 19:47 | 只看该作者
没有volatile也可能能正常运行,但是可能修改了编译器的优化级别之后就又不能正常运行了。

使用特权

评论回复
10
wanglaojii| | 2021-11-6 21:00 | 只看该作者
关键字 volatile 是与 const 绝对对立的。

使用特权

评论回复
11
laozhongyi| | 2021-11-6 21:01 | 只看该作者
加了 volatile 修饰,则会从内存重新装载内容。。

使用特权

评论回复
12
Edisons| | 2021-11-6 21:04 | 只看该作者
volatile 的作用 是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。

使用特权

评论回复
13
_gege| | 2021-11-6 21:05 | 只看该作者
存储器映射的硬件寄存器通常也要加 voliate,因为每次对它的读写都可能有不同意义。

使用特权

评论回复
14
Mozarts| | 2021-11-6 21:08 | 只看该作者
DSP将寄存器变量都映射到相应的寄存器地址,因此经常会见到这样声明的语句。

使用特权

评论回复
15
Listate| | 2021-11-6 21:10 | 只看该作者
volatile提醒编译器它后面所定义的变量随时都有可能改变

使用特权

评论回复
16
feiqi1| | 2021-11-6 21:12 | 只看该作者
如果没有volatile关键字,则编译器可能优化读取和存储。

使用特权

评论回复
17
androidbus| | 2021-11-6 21:14 | 只看该作者
由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化

使用特权

评论回复
18
litengg| | 2021-11-6 21:15 | 只看该作者
volatile 可以保证对特殊地址的稳定访问。

使用特权

评论回复
19
qiangweii| | 2021-11-6 21:16 | 只看该作者
加入了该关键字,提示编译器每次读取该变量时,都要直接读取该变量地址中的寄存器!

使用特权

评论回复
20
yinwuqing110| | 2021-11-7 13:16 | 只看该作者
用volatile声明的变量表示该变量随时可能发生变化,与该变量有关的运算,不要进行编译优化,以免出错。

使用特权

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

本版积分规则

179

主题

1867

帖子

1

粉丝