在C中,当我想将数字5放在地址0x28时,我可以这样做:
char* x = (char *) 0x28;
*x = 5;
如果我愿意,我可以在不声明变量的情况下做同样的事情:
*((char *) 0x28) = 5;
如果我希望编译器将此地址视为易失性,我可以这样做:
volatile char* x = (char *) 0x28;
*x = 5;
我可以在不声明变量的情况下完成吗?
编辑:让我解释一下我想做的原因" *((char *)0x28)= 5"。我为ATmega32U4写了一个闪烁的LED hello world程序,我知道地址0x28规定了我的LED所连接的引脚。它确实有效:您建议编译的C代码可以纠正机器代码并且LED闪烁。
答案 0 :(得分:3)
很简单:
*((volatile char *) 0x28) = 5;