CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

volatile这种类型是干什么用的???

楼主bestsmoke((嘿嘿))2003-09-04 18:38:01 在 C/C++ / C++ 语言 提问

volatile这种类型是干什么用的??? 问题点数:0、回复次数:3Top

1 楼Salam2001(Upgrading : C++ and Data Structure ...)回复于 2003-09-04 19:52:35 得分 0

这不是类型,而是修饰符。它告诉编译器不要优化该关键字后面的数据对象。  
   
  举例说,如果有个变量平繁地被几个函数所调用,则编译器会将这个变量放到寄存器中.  
  如果该变量不是由该程序所修改而是有其他某个地方修改(比如说硬件设备等...)的话,就应该用volatile来提醒编译器不要进行优化,否则有可能会出现意料之外的结果.  
   
  小弟初学,   不对之处,   还请高手指点.Top

2 楼techlibin(techlb)回复于 2003-09-04 20:15:16 得分 0

如Salam2001(Look   4   Angel)   所说,再举个例子:  
  线程A要访问线程B的变量V,如果不使用volatile关键字修饰,则变量V可能被存放在某个寄存器中。我们知道各个线程都有自己的寄存器,也就是现在线程B使用自己的某个寄存器存放变量V。但是线程A不知道这个事实,还是根据该变量地址访问该变量,这就可能导致数据的不一致。Top

3 楼tuxw(醉书生)回复于 2003-09-04 20:17:35 得分 0

可能在编译器不知道的情况下改变,编译不得对它优化Top

相关问题

  • 一个类的type-safe(类型安全)用来干什么的?
  • boost干什么用?
  • SQL Server的字段类型是怎么回事?length,precision干什么用的?
  • EXPSRV.DLL 是干什么用的??
  • split是干什么用的?
  • powerdesign是干什么用的?
  • 我能用c干什么?
  • ASSERT()是干什么用的
  • lsass.exe和mad.exe干什么用?
  • DOS.h是干什么用的?

关键词

  • 编译器
  • 线程
  • 优化
  • 变量
  • 寄存器
  • volatile
  • 类型
  • 知道

得分解答快速导航

  • 帖主:bestsmoke

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo