关键字volatile

Posted on 2016-08-21 20:08  WhatTD  阅读(109)  评论(0)    收藏  举报

例子:

  int  i =10;

  int  j = i;  //1

  int  k  = i;  //2

   1、2两句中,i 没有被用作左值,这时编译器认为i 的值没有发生变化, i赋值给j后没有被释放掉,继续直接赋值给k。

 

例子:

  volatile  int  i  = 10 ;

  int  j  = i;

   int  k  =  i;

  volatile关键字告诉编译器,i是随时可能发生变化的,每次使用它的时候必须从内存中取出i的值,因而编译器生成的汇编代码会重新从i的地址处读取数据放在k中。

 

const  volatile  int  i  =  10 ;

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3