考虑一下:
(volatile unsigned long *) 0x4000703C
这个语句是否意味着我们声明了一个指向地址
0x4000703C
的指针?以及:#define STEPPER (*((volatile unsigned long *)0x4000703C))
void Step(void){
STEPPER = 10;
STEPPER = 9;
STEPPER = 5;
STEPPER = 6;
}
STEPPER
是指针在地址0x4000703C
处的差异,我们直接写入到0x4000703C
。对吗? 最佳答案
这个语句是否意味着我们声明一个指向地址的指针
不,声明包含标识符,在本例中是变量名。有一个操作将整数强制转换为指针类型,指向0x4000703C
。没有任何声明。
步进器是地址0x4000703C处指针的差异,我们直接写入0x4000703C。对吗?
对。在0x4000703C
中有什么样的记忆当然是完全特定于系统的。
关于c - 具有特定地址的指针声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21749467/