设为首页 加入收藏

TOP

关键字volatile在C语言下的理解
2015-11-10 13:45:18 来源: 作者: 【 】 浏览:1
Tags:关键字 volatile 语言 理解

volatile关键字:防止被编译器优化;下面是在Linux环境下的解释:


*注释:解释下linux下的优化:


Linux下,gcc 是指gcc c编译器。编译选项-O1告诉编译器使用第一级优化。增加优化会使程序执行的更快,但是也会有一定的缺点,它会造成机器代码很大程度的变化,从而使机器码和原代码很难对应起来。从程序方面考虑我们会经常使用第二级优化-O2。这个问题以后介绍。


下来我们看下面代码没有加关键字volatile


关键字volatile在C语言下的理解


通过下面不加优化命令得到结果;


关键字volatile在C语言下的理解


可以看到结果被改变。


通过下面加优化的命令得到结果:


关键字volatile在C语言下的理解


可以看见没有改变。


因为经过优化后的变量会放在寄存器中。前面已经说过寄存器是速度最快的。


下面是加volatile的代码:


关键字volatile在C语言下的理解关键字volatile在C语言下的理解


可以看到,虽然经过-O2优化,但是加volatile后10还是被改成20;


结论:


volatile关键字是防止编译器对其变量进行优化。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux64位程序移植 下一篇为什么你应该选择Python编程

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: