c语言*(volatile unsigned char xdata *) 0x2f5f,这个表示方法是什么意思?

c语言*(volatile unsigned char xdata *) 0x2f5f,这个表示方法是什么意思?
2025-03-07 01:56:03
推荐回答(2个)
回答1:

将一个立即数,强制转换一个指针,再以这个指针取出这个地址开始一个字节的内容。

具体0x2f5f,是什么,那就要看芯片的数据手册了。

比如说,如果A寄存器的地址是0x2f5f,那么,定义了
#define A *(volatile unsigned char xdata *) 0x2f5f

那么就可能对寄存器A赋值,只要 A = 0xff;就可以了。

去看看芯片的数据手册,看下0x2f5f是什么地址空间,才能知道他到底是什么。

回答2:

这是指一个外部的绝对物理地址,后面的0x2f5f就是它的具体地址,在一些用KEIL编译的程序里面通常这样来指定一个绝对地址。