C 语言如何 malloc 一块 volatile 的内存?

2017-12-08 00:26:53 +08:00
 zhangzzzzz

https://stackoverflow.com/questions/2304729/how-do-i-declare-an-array-created-using-malloc-to-be-volatile-in-c
看了这个贴子,结果越看约蒙,求解。。

volatile int * foo; // foo is a pointer to an int, volatile

我怎么感觉这个声明也对
另外有没有什么办法能看到这篇文章 http://www.embedded.com/story/OEG20010615S0107

1783 次点击
所在节点    程序员
3 条回复
afpro
2017-12-08 00:44:51 +08:00
volatile 内存是什么鬼。。。。。。
zhangzzzzz
2017-12-08 01:14:31 +08:00
@afpro
擦..好丢人,我都没注意,顺着就打上字了
ryd994
2017-12-08 01:58:54 +08:00
volatile 的作用是阻止编译器优化,保证每次总是取实际内存
所以只要指针是 volatile,编译器就明白你的目的,因此对这个指针的操作就不再优化
话说回来,你为什么要 volatile 一个堆内存? volatile 一般是配合硬件 register 用的,因为这些 register 作为内存使用,但内容会被硬件修改。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/412963

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX