码迷,mamicode.com
首页 > 其他好文 > 详细

#define XBYTE ((unsigned char volatile xdata *) 0)

时间:2014-07-02 14:58:41      阅读:358      评论:0      收藏:0      [点我收藏+]

标签:文件   数据   har   编程   ar   程序   

    今天在看别人的CAN总线程序的时候,突然发现了这么一句宏定义:#define XBYTE ((unsigned char volatile xdata *) 0),以前都没注意到过。后来查了一下,发现是在ABSACC.h这个头文件中的。这是C51中专有的东西,在C51编程中只要有外部扩展RAM,就得这样用。在51单片机中,RAM空间有内外之分,而内部RAM与外部256字节的RAM同地址,在有扩展外部RAM的系统中,有的会用上外部RAM的前256字节,有的前256字节没有用。以上的定义就是用上了前256字节,也就是说外部RAM从0地址开始寻址。

    我看到过其他的C编程,通常是这么用的: *(unsigned char volatile xdata *)(0x3000)=0xFF这类的方式来进行对外部绝对地址的字节访问。其实XBYTE就相当于一个指向外部数据区的无符号字符型变量的指针(的名称,且当前的指针指向外部RAM的0地址),而在C里面指针一般和数组是可以混用的。可以直接用XBYTE[0xnnnn]或*(XBYTE+0xnnnn)访问外部RAM了。

 

 

 

 

#define XBYTE ((unsigned char volatile xdata *) 0),布布扣,bubuko.com

#define XBYTE ((unsigned char volatile xdata *) 0)

标签:文件   数据   har   编程   ar   程序   

原文地址:http://www.cnblogs.com/yibanshouxi/p/3819972.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!