现在的位置: 首页 > 综合 > 正文

c++ volatile

2018年03月21日 ⁄ 综合 ⁄ 共 360字 ⁄ 字号 评论关闭

volatile:

用法:

#include<iostream>

int main()
{
     const int n=100;
     volatile const int m=200;
     int *p=(int *)&n;
     *p=123;
     p=(int *)&m;
     *p=456;
     std::cout<<"n="<<n<<"m="<<m<<std::endl;
     return 0;
}

输出结果是:  n=100m=456
解释:

n和m都为常量 不可修改通过n和m,但是可以通过指针修改其内存中的值从而改变n和m的值
但是在运行时 c++对其进行的优化 不访问内存取值,而是 n=100 c++就认为其值为100
volatile的作用是使其每次都从新访问内存取值 则m=456

c程序则不同 没有c++的优化 从而每次都访问内存 结果是 n=123m=456

抱歉!评论已关闭.