[应用相关] C语言中volatile是什么意思啊

[复制链接]
haitun1895 发表于 2012-6-9 14:30 | 显示全部楼层
学习的了。
tomy黎 发表于 2012-6-10 09:58 | 显示全部楼层
这个还行啊!!看多点例子就能理解
zlylangzi 发表于 2012-6-10 23:55 | 显示全部楼层
激动!高人真多啊
zlylangzi 发表于 2012-6-10 23:55 | 显示全部楼层
激动!高人真多啊
zlylangzi 发表于 2012-6-10 23:56 | 显示全部楼层
激动啊,高人真多!
tw061645 发表于 2012-6-11 13:01 | 显示全部楼层
偷师来了,共同进步哈
 楼主| huangfeng33 发表于 2012-6-11 21:37 | 显示全部楼层
虽然没能力发酷贴,但能创造酷贴:lol
zhdbao88 发表于 2012-6-12 10:27 | 显示全部楼层
原来是这样走啊,,学习了。,
xygyszb 发表于 2012-6-12 11:08 | 显示全部楼层
学习,
jxmzzr 发表于 2012-6-12 22:39 | 显示全部楼层
答疑解惑就是应该有所鼓励的,支持版主给的这个酷:loveliness:
cklgf 发表于 2012-6-12 23:44 | 显示全部楼层
定义为volatile的变量是说这个变量可能会被意想不到地改变,这样编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。 ...
yfy871216 发表于 2012-5-26 17:55

正解!!
frlop 发表于 2012-6-13 11:31 | 显示全部楼层
学习了。
lzh4774 发表于 2012-6-13 11:51 | 显示全部楼层
这个在C语言书里面应该都能找到
weiweiyixiao 发表于 2012-6-13 12:12 | 显示全部楼层
学习一下
vfp8341 发表于 2012-6-14 19:02 | 显示全部楼层
3# wgggjfg
讲的好啊
1100610615 发表于 2012-6-15 00:27 | 显示全部楼层
四季花朵 发表于 2012-6-16 10:27 | 显示全部楼层
不懂啊  我也是学习来了
mage心寒 发表于 2012-6-16 10:40 | 显示全部楼层
我也觉得3L最容易懂??集合自身的体会让人一看就明白,斑竹给裤子的那楼有点照搬原文的意思,给裤子有点牵强。。。
john_lee 发表于 2012-6-16 11:50 | 显示全部楼层
本帖最后由 john_lee 于 2012-8-2 13:08 编辑

貌似大家对 volatile 的理解都很到位,那么来看几个问题吧:
  1. // 例程1
  2. int baz;
  3. int qux;
  4. void foo()
  5. {
  6.     while (baz) {
  7.         if (--qux == 0)
  8.             break;
  9.     }
  10. }
  11. ----------------------
  12. // 例程2
  13. int baz;
  14. int bar();
  15. void foo()
  16. {
  17.     while (baz) {
  18.         if (bar() == 0)
  19.             break;
  20.     }
  21. }
复制代码
在例程 1 和例程 2 中的 baz 变量会在中断服务例程中修改,那么 baz 是否需要加上volatile修饰?
zsyf0918 发表于 2012-6-18 17:03 | 显示全部楼层
不会用volatile有时会造成大灾难,但不是什么地方都定义为volatile,在中断中改变的变量多用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部