如何定义描述内存位置的宏?

run*_*ner 2 c macros

变量位于内存地址0x10000处.如何定义一个宏,以便写入该宏写入该内存位置?

Lun*_*din 6

在C中声明可写内存位置的事实上的标准方法是:

#define REGISTER (*(volatile uint8_t*)0x10000)
Run Code Online (Sandbox Code Playgroud)

where uint8_t应该对应于该内存位置的内容大小.

然后REGISTER = something;写入该内存位置,就像REGISTER是一个变量一样.

使用volatile关键字非常重要,以防止优化错误并确保读取位置始终是最新的.