打印
[微控制器/MCU]

volatile 与 static类型变量有何区别呢?

[复制链接]
3392|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yulri|  楼主 | 2010-10-18 16:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
IJK| | 2010-10-19 11:27 | 只看该作者
搜索网上的资料

使用特权

评论回复
板凳
米其林r| | 2010-10-23 20:56 | 只看该作者
volatile告诉编译器你他妈的不许给我优化我的变量

static 规定局部变量,只在函数体内有效作用域,   

规定函数只在本文件内有效

使用特权

评论回复
地板
bit6019| | 2010-10-26 22:37 | 只看该作者
这个区别太大了

使用特权

评论回复
5
yulri|  楼主 | 2010-10-27 10:00 | 只看该作者
volatile告诉编译器你他妈的不许给我优化我的变量

static 规定局部变量,只在函数体内有效作用域,   

规定函数只在本文件内有效
米其林r 发表于 2010-10-23 20:56

;P ,兄弟太幽默了!

使用特权

评论回复
6
csq463276932| | 2011-4-24 20:52 | 只看该作者
在C语言中,关键字static有三个明显的作用:  
  1 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。  
  2 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。  
  3 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。

以上来自网摘。

使用特权

评论回复
7
来与君| | 2011-4-24 21:30 | 只看该作者
volatile的字面意思是“易变的”,这是在告诉编译器,这个变量的值随时在变,编译器必须每次碰到它修饰的变量时都读取最新的值。

例如某变量在主程序和中断服务中都用到时,应该用volatile修饰它。

使用特权

评论回复
8
金鱼木鱼| | 2011-4-24 22:49 | 只看该作者
用的汇编,学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

161

帖子

1

粉丝