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 修饰变量...
C
原创 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评论
volatilevolatile表示可以被某些编
原创 2022-10-31 19:41:38
204阅读
详解VOLATILEC++作用
转载 2012-08-29 15:42:00
69阅读
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.为什么用volatileC/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阅读
  • 1
  • 2
  • 3
  • 4
  • 5