首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 嵌入式系统 > c语言中volatile关键字作用

c语言中volatile关键字作用

资料介绍
c语言中volatile关键字作用
C 语言中
语言中 volatile 关键字作用
关键字作用
一个定义为 volatile 的变量是说这变量可能会被意想不到地改变,这样,编
译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必
须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下
面是 volatile 变量的几个例子:
1). 并行设备的硬件寄存器(如:状态寄存器)
2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic vari
ables)
3). 多线程应用中被几个任务共享的变量
回答不出这个问题的人是不会被雇佣的。我认为这是区分 C 程序员和嵌入式
系统程序员的最基本的问题。嵌入式系统程序员经常同硬件、中断、RTOS 等等
打交道,所用这些都要求 volatile 变量。不懂得 volatile 内容将会带来灾难。
我将稍微深究一下 volatile 的重要性。
1). 一个参数既可以是 const 还可以是 volatile 吗?解释为什么。
2). 一个指针可以是 volatile 吗?解释为什么。
3). 下面的函数有什么错误:
int square(volatile int *ptr)
{
return *ptr * *ptr;
}
下面是答案:
1). 是的。一个例子是只读的状态寄存器。它是 volatile 因为它可能被意想
不到地改变。它是 const 因为程序不应该试图去修改它。
2)
标签:cvolatile
c语言中volatile关键字作用
本地下载

评论