打印
[应用相关]

C语言中volatile是什么意思啊

[复制链接]
楼主: huangfeng33
手机看帖
扫描二维码
随时随地手机跟帖
41
haitun1895| | 2012-6-9 14:30 | 只看该作者 回帖奖励 |倒序浏览
学习的了。

使用特权

评论回复
42
tomy黎| | 2012-6-10 09:58 | 只看该作者
这个还行啊!!看多点例子就能理解

使用特权

评论回复
43
zlylangzi| | 2012-6-10 23:55 | 只看该作者
激动!高人真多啊

使用特权

评论回复
44
zlylangzi| | 2012-6-10 23:55 | 只看该作者
激动!高人真多啊

使用特权

评论回复
45
zlylangzi| | 2012-6-10 23:56 | 只看该作者
激动啊,高人真多!

使用特权

评论回复
46
tw061645| | 2012-6-11 13:01 | 只看该作者
偷师来了,共同进步哈

使用特权

评论回复
47
huangfeng33|  楼主 | 2012-6-11 21:37 | 只看该作者
虽然没能力发酷贴,但能创造酷贴:lol

使用特权

评论回复
48
zhdbao88| | 2012-6-12 10:27 | 只看该作者
原来是这样走啊,,学习了。,

使用特权

评论回复
49
xygyszb| | 2012-6-12 11:08 | 只看该作者
学习,

使用特权

评论回复
50
jxmzzr| | 2012-6-12 22:39 | 只看该作者
答疑解惑就是应该有所鼓励的,支持版主给的这个酷:loveliness:

使用特权

评论回复
51
cklgf| | 2012-6-12 23:44 | 只看该作者
定义为volatile的变量是说这个变量可能会被意想不到地改变,这样编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。 ...
yfy871216 发表于 2012-5-26 17:55

正解!!

使用特权

评论回复
52
frlop| | 2012-6-13 11:31 | 只看该作者
学习了。

使用特权

评论回复
53
lzh4774| | 2012-6-13 11:51 | 只看该作者
这个在C语言书里面应该都能找到

使用特权

评论回复
54
weiweiyixiao| | 2012-6-13 12:12 | 只看该作者
学习一下

使用特权

评论回复
55
vfp8341| | 2012-6-14 19:02 | 只看该作者
3# wgggjfg
讲的好啊

使用特权

评论回复
56
1100610615| | 2012-6-15 00:27 | 只看该作者
d d

使用特权

评论回复
57
四季花朵| | 2012-6-16 10:27 | 只看该作者
不懂啊  我也是学习来了

使用特权

评论回复
58
mage心寒| | 2012-6-16 10:40 | 只看该作者
我也觉得3L最容易懂??集合自身的体会让人一看就明白,斑竹给裤子的那楼有点照搬原文的意思,给裤子有点牵强。。。

使用特权

评论回复
59
john_lee| | 2012-6-16 11:50 | 只看该作者
本帖最后由 john_lee 于 2012-8-2 13:08 编辑

貌似大家对 volatile 的理解都很到位,那么来看几个问题吧:
// 例程1
int baz;
int qux;
void foo()
{
    while (baz) {
        if (--qux == 0)
            break;
    }
}
----------------------
// 例程2
int baz;
int bar();
void foo()
{
    while (baz) {
        if (bar() == 0)
            break;
    }
}
在例程 1 和例程 2 中的 baz 变量会在中断服务例程中修改,那么 baz 是否需要加上volatile修饰?

使用特权

评论回复
60
zsyf0918| | 2012-6-18 17:03 | 只看该作者
不会用volatile有时会造成大灾难,但不是什么地方都定义为volatile,在中断中改变的变量多用。

使用特权

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

本版积分规则