社区
C语言
帖子详情
volatile修饰指针是在什么情况下出现及原因?
Jeremy_Bai
2014-10-03 04:27:03
rt,最近看到一个问题:一个指针可以是volatile吗?给出的答案不是很理解:是的。尽管这并不很常见。一个例子是当一个中断服务子程序修改一个指向一个buffer的指针时。
大家能否举个例子?
...全文
840
6
打赏
收藏
volatile修饰指针是在什么情况下出现及原因?
rt,最近看到一个问题:一个指针可以是volatile吗?给出的答案不是很理解:是的。尽管这并不很常见。一个例子是当一个中断服务子程序修改一个指向一个buffer的指针时。 大家能否举个例子?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mymtom
2014-10-08
打赏
举报
回复
楼主自己不是有例子了吗!
赵4老师
2014-10-08
打赏
举报
回复
补一下《计算机组成原理》中断相关知识点。
小竹z
2014-10-08
打赏
举报
回复
buffer指向一个地址被A线程使用,B线程修改了buffer所指的地址,同时希望A线程使用新地址,设置volatile。
羽飞
2014-10-06
打赏
举报
回复
指针指向的内存也需要设置成volatile类型
罗博士
2014-10-06
打赏
举报
回复
你能理解某个int为什么是volatile吗?如果可以的话,int*为什么是volatile也是同样的道理。至于例子,你不是已经说了嘛。
「已注销」
2014-10-06
打赏
举报
回复
不清楚,查了下
http://blog.csdn.net/tigerjibo/article/details/7427366
volatile
与
指针
及用途
问题现象:代码在执行过程中,突然发现内存值与预计的不同 问题分析:使用共享资源的时候会被编译器优化 问题解决:使用
volatile
修饰
共享资源
volatile
用在如下的几个地方: 1、中断服务程序中修改的供其它程序检测的变量需要加
volatile
; 2、多任务环境下各任务间共享的标志应该加
volatile
; 3、存储器映射的硬件寄存器通常也要加
volatile
说明,因为每次对它的读写都可能由不同意义;
volatile
修饰
指针
一般用在共享
指针
上面。 下面代码: uchar * vola..
volatile
修饰
符和函数
指针
--c++学习笔记
volatile
关键字是一种类型
修饰
符,用它声明的类型变量表示可以被某些编译器未知的因素(操作系统、硬件、其它线程等)更改。所以使用
volatile
告诉编译器不应对这样的对象进行优化。对于线程共享的变量应该设置为
volatile
,不然编译器优化,会将该变量放入寄存器中,每次从寄存器中读取数据,导致获得不了该值已经改变。
C中
指针
的
volatile
属性是什么?
如果不使用`
volatile
`,编译器可能会将`*ptr`的值缓存到寄存器中,导致在函数执行过程中`*ptr`的值被外部因素修改后,仍然使用旧值进行计算。2. **`
volatile
`与`const`的兼容性**:一个变量可以同时是`const`和`
volatile
`。3. **
指针
自身的值也可以是`
volatile
`**:除了
指针
指向的对象可以是`
volatile
`外,
指针
自身的值也可以是`
volatile
`。在这个例子中,`ptr`被声明为`
volatile
`,确保其指向的值不会被编译器优化掉。
volatile
与
指针
volatile
用在如下的几个地方: 1、中断服务程序中修改的供其它程序检测的变量需要加
volatile
; 2、多任务环境下各任务间共享的标志应该加
volatile
; 3、存储器映射的硬件寄存器通常也要加
volatile
说明,因为每次对它的读写都可能由不同意义;
volatile
修饰
指针
一般用在共享
指针
上面。 下面代码: uchar *
volatile
reg
Volatile
指针
3. C++中一个有
volatile
标识符的类只能访问它接口的子集,一个由类的实现者控制的子集。此外,
volatile
向const一样会从类传递到它的成员。类似于const成员函数中所有成员变量均被视为const变量,在
volatile
成员函数中,所有成员变量也均被视为
volatile
。一个类示例被声明为
volatile
,那么通过这个
volatile
对象只能调用该类中被标记为
volatile
的成员函数。之所以说,是由类的实现者实现的子集,是因为给哪些成员函数标识上
volatile
的标记,完全由实现者决定。
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章