没有变量

时间:2018-02-09 18:12:16

标签: c volatile

在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闪烁。

1 个答案:

答案 0 :(得分:3)

很简单:

*((volatile char *) 0x28) = 5;