C语言修饰符
2013-10-24 11:21
127 查看
volatile:就象大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。
volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.
简单地说就是防止编译器对代码进行优化.比如如下程序:
对外部硬件而言,上述四条语句分别表示不同的操作,会产生四种不同的动作,但是编译器就不能像对待纯粹的程序那样对上述四条语句进行优化,只认为XBYTE[2]=0x58(即忽略前三条语句,只产生一条机器代码)。如果键入volatile,则编译器会逐一的进行编译并产生相应的机器代码(四条).
本文出自 “技术在于坚持” 博客,请务必保留此出处http://minilinux.blog.51cto.com/4499123/1314363
volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.
简单地说就是防止编译器对代码进行优化.比如如下程序:
本文出自 “技术在于坚持” 博客,请务必保留此出处http://minilinux.blog.51cto.com/4499123/1314363
相关文章推荐
- LeetCode:Word Break II(DP)
- 深入分析C++引用
- 简单的程序诠释C++ STL算法系列之十五:swap
- 设计模式(c++)笔记之十五(State模式)
- 关于C++中const修饰的一些备忘.....【2013.10.23】
- 关于sungard和博彦的笔试
- C语言基础
- C++ 操作符重载 operator = 、operator <
- C++类循环依赖
- (c++)图形2
- c++选择排序法
- 小记:c++ vector 可能占用大量内存
- C++语法一二
- 10.C语言之动态内存分配
- [互联网面试笔试汇总C/C++-21] FIFO 、LRU、LFU的含义、原理和实现-完美世界
- 常见排序算法之-冒泡排序(C++实现)
- c++使用toolsoapkit调用webservice
- 哈希表例子(C语言实现)
- (C++)图形1
- C语言库函数