volatile(英文解释:挥发性的,不稳定的)关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。使用该关键字的例子如下:int volatile nVint; 当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。例如:volatile int i=10;int a = i;...//其他代码,并未明确告诉编译器,对i进行过操作in..
转载
2012-07-15 14:05:00
78阅读
2评论
1.一般用于修饰指针,该指针指向内容“易变”的内存;用volatile的话,是为了告诉编译器,不要去做编译优化,在使用这个存储块的时候必须每次都从指向的内存处拿东西; 例子:循环多次从一个指针中取内容,编译器觉得既然多次重复的取一个指针的内容,那干脆就把指针的内容放在寄存器里(寄存器是CPU的一个组 ...
转载
2021-07-29 17:16:00
269阅读
2评论
const 告诉编译器:这是不会改变的(允许编译器执行额外的优化);volatile告诉编译器:不知道何时会优化,防止编译器依据变量的稳定性作任何优化。
原创
2022-08-30 12:21:04
96阅读
引子1 猜猜看,下面这段代码有什么问题: 答案: 本来代码完全正常,但是为了优化性能,打开了编译器的优化。但是发现这个函数被编译器优化掉了。为了防止被优化掉,需要给函数的参数加上volatile: 引子2 再猜猜看,《程序员面试宝典》这段代码有什么问题: 答案: 由于*ptr指向一个volatile
转载
2017-06-13 15:47:00
246阅读
2评论
1. volatile的作用 volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改。比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。 声明时语法:volatile int ...
转载
2021-08-31 10:52:00
112阅读
2评论
volatile的介绍volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 #include void main(){ volatile int i = 1
原创
2023-03-03 13:06:56
200阅读
1.使用 volatile int i = 10;2.使用volatile时要几个注意的点:volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素(操作系统、硬件、其它线程等)更改。所以使用 volatile 告诉编译器不应对这样的对象进行优化。volatile 关键字声明的变量,每次访问时都必须从内存中取出值(没有被 volatile 修饰的变量...
原创
2021-07-30 10:33:45
287阅读
转载自:http://blog.csdn.net/wuliming_sc/article/details/3717017const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYP
转载
2021-08-18 10:26:05
260阅读
const、volatile、mutable的用法鸣谢作者:://blog..net/wuliming_sc/article/details/3717017const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const val...
转载
2022-03-16 14:01:59
150阅读
VOLATILE的介绍 volatile类似于大家所熟知的const也是一个类型修饰符。volatile是给编译器的指示来说明对它所修饰的对象不应该执行优E的结果 如果没有volatile,你将无法
原创
2023-06-11 12:28:39
479阅读
为什么用volatile?C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,...
原创
2022-05-03 21:54:53
169阅读
volatile概念volatile是易变的、不稳定的意思。volatile关键字和const一样是一种类型修饰符,用它修饰的变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。先看看下面的例子: int i=10; int j = i;//(1)语句 int k = i;//(2)语句这时候编译器对代码进行优化,因为在(1)、(2)两条语句中,i 没有被用作左值。这时候编译器认为i 的值没有发生改变,所以在(1)语句时从内存中取出i 的值赋给j 之后,这个值并... Read More
转载
2013-08-02 22:03:00
150阅读
2评论
讲讲C++中的volatile关键字2010-07-05 21:48 by Caizhi, 1341 阅读, 0 评论, 收藏, 编辑引子1 猜猜看,下面这32 n){ while(—n);}
转载
2023-07-20 11:40:25
71阅读
1. 为什么用volatile? C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明:A volatile specifier is a
转载
2022-12-11 17:09:53
99阅读
背景 此微博,引发了朋友们的大量讨论:赞同者有之;批评者有之;当然,更多的朋友,是希望我能更详细的解读C/C++ Volatile关键词,来佐证我的微博观点。而这,正是我写这篇博文的初衷:本文,将详细分析C/C++ Volatile关键词的功能 (有多种功能)、Volatile关键词在多线程编程中存
转载
2017-11-17 16:51:00
222阅读
1.为什么用volatile?C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别
转载
2023-02-17 09:58:59
63阅读
会用和能讲清楚,绝对是两回事,今天又遇到小同事问这个问题;Part1: 联系,这个有点复杂=======
原创
2022-09-13 20:30:00
327阅读
本文转载自博文C/C++ Volatile关键词深度剖析。背景 前几天,发了一条如下的微博 (关于C/C++ Volatile关键词的使用建议): 此微博,引发了朋友们的大量讨论:赞同者有之;批评者有之;当然,更多的朋友,是希望我能更详细的解读C/C++ Volatile关键词,来佐证我...
转载
2021-07-31 11:12:55
314阅读