大家好:
我最近的程序有问题,刚学单片机C编程,请大家帮忙看一看啊,
源程 如下:想建立一个结构,该结构中,有一个指针xdata 空间的,有一个unsigned int 的数据是data 空间的:
struct zBuffer {
uchar xdata *pTB; /*transmit buffer*/
unsigned int data len;
......
} ;
编译时就出错了,大概的意思是不认识 len这个变量,为什么。
我的地址:myruru20052yahoo.com.cn 欢迎大家给我解释。谢谢!
struct的定义属于type定义,有一个xdata * 的成员尚可接受,但没法接受data指定的成员,
因为整个的struct必须拥有相同的存储属性。
你的问题或许可以这样解决:
typedef struct _z_buffer {
uchar xdata * pTB;
unsigned int len;
} zBuffer;
/* 在data 域定义变量 */
zBuffer data z_buf;
zBuffer data z_array[10];
struct zBuffer {
uchar xdata *pTB; /*transmit buffer*/
unsigned int data len;
......
} ;
在结构里指定对象的存放区域会出现二异性.比如说:
当你的结构放在XDATA的时候,你定义的结构变量就违反了你声明的DATA区域
这时编译器就为难了,所以它就不干了