C++关键字volatile
来源:互联网 发布:air mac thea 编辑:程序博客网 时间:2024/05/16 05:14
http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777432.html
这说明这个 volatile 关键字发挥了它的作用。其实不只是“内嵌汇编操纵栈”这种方式属于编译无法识别的变量改变,另外更多的可能是多线程并发访问共享变量时,一个线程改变了变量的值,怎样让改变后的值对其它线程 visible。一般说来,volatile用在如下的几个地方:
1) 中断服务程序中修改的供其它程序检测的变量需要加volatile;
2) 多任务环境下各任务间共享的标志应该加volatile;
3) 存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义;
#include <stdio.h>void main(){ int i = 10; int a = i; printf("i = %d", a); // 下面汇编语句的作用就是改变内存中 i 的值 // 但是又不让编译器知道 __asm { mov dword ptr [ebp-4], 20h } int b = i; printf("i = %d", b);}
然后,在 Debug 版本模式运行程序,输出结果如下:
i = 10
i = 32
然后,在 Release 版本模式运行程序,输出结果如下:
i = 10
i = 10
这是链接的效果,实测。。。并没有区别,都是10…
阅读全文
0 0
- C 关键字 volatile
- C中volatile关键字
- C 关键字 volatile
- C语言关键字volatile
- C关键字volatile
- C volatile关键字
- C关键字volatile详解
- C语言volatile关键字
- C关键字之 volatile
- C关键字volatile
- C语言volatile关键字
- C :关键字 volatile
- C中的volatile关键字
- C/C++ volatile关键字
- C语言关键字volatile
- volatile c 关键字
- C语言volatile关键字
- C语言关键字volatile
- canvas绘制五星红旗
- Hadoop之旅(9)— Hbase 教程与shell实战操作
- “玲珑杯”ACM比赛 Round #21 【线段树标记】
- gradle android基本配置详解
- 在ThinkPHP3.2中无法加载控制器的原因之一
- C++关键字volatile
- 欢迎使用CSDN-markdown编辑器
- Spark新愿景:让深度学习变得更加易于使用
- 丑数-以空间换时间的思想
- Java实现telnet到阿里云ubuntu服务器
- 自考之信息系统开发与管理(一)
- ”磨耳朵“的英语时光
- Matlab入门
- 筛选法求素数