考虑一下:

(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/

10-11 03:03