【发布时间】:2015-09-30 00:53:18
【问题描述】:
假设我想定义一个指令,该指令可以采用 int8_t 并将其存储到指定的内存位置,例如 0x0071。我该怎么做?
我知道我可以说
#define DDRA 0xAA
这将使 DDRA = 0xAA,但我如何使它才能打字
DDRA = 0xBB;
会在地址位置 0x0071 中写入 0xBB 吗?
【问题讨论】:
-
#define DDRA (*reinterpret_cast<unsigned char*>(0x71)) -
它不会使
DDRA =任何东西。 -
为什么使用预处理指令而不是静态常量?
-
C 和 C++ 是两种不同的语言,因此请选择您所谈论的语言,因为这两种语言的答案大不相同。
-
在 C 中,而不是这个:
DDRA = 0xBB;,它只会导致编译器输出错误消息,而是使用这个:*(int8_t*)DDRA = 0xBB;,它将修改 0xAA 处的一个内存字节