#define XREG(addr) ((unsigned char volatile __xdata *) 0 )[addr]

来源:互联网 发布:淘宝有海外版吗 编辑:程序博客网 时间:2024/05/16 07:57

#define XREG(addr)  ((unsigned char volatile __xdata  *) 0 )[addr]

((unsigned char volatile __xdata  *) 0 )

这里等效成一个char数组的首地址,也是一个指针,指向flah的0地址。
volatile是表示该变量会被非编译器控制设备改变,比如外设,IO,中断等等,这样每次使用该变量的值时,都会读取一次,而不会使用前一次保存在内存中的值。

((unsigned char volatile __xdata  *) 0 )[addr]这个就好理解了,addr是数组下标,相当于从地址0开始的addr个char。

XREG(addr)就是对从0开始的第addr个数(char)进行读写操作。0就是以0基址,addr是偏移量

原创粉丝点击