【发布时间】:2019-02-09 00:17:17
【问题描述】:
我的代码如下:
unsigned int* Adc = 0x2000;
据我了解,ADC的地址是0x2000,对吗?
如果我想为 Adc 赋值,我就这样写:
Adc = 88;
正确与否?
【问题讨论】:
-
不,这是不正确的,这不是有效的 C 代码。你会想要类似
volatile uint16_t* Adc = (volatile uint16_t*)0x2000; .. *Adc = 88; -
@Lundin 副本实际上是向后的
-
@AnttiHaapala Gah,你是对的。他们在标题中说一件事,然后做另一件事。不是一个好的规范骗局。无论如何,出于同样的原因,您也不能反过来做。我会寻找更好的规范帖子。
-
@AnttiHaapala 我没有发现好的规范骗局,但这是一个非常常见的常见问题解答。所以我最终自己写了一个问答风格:“Pointer from integer/integer from pointer without a cast” issues。非常感谢校对:)
标签: c