您的位置:程序门 -> 硬件/嵌入开发 -> 片机/工控



单片机c编程中,struct的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


单片机c编程中,struct的问题
发表于:2007-09-15 16:35:55 楼主
大家好:
我最近的程序有问题,刚学单片机c编程,请大家帮忙看一看啊,
源程   如下:想建立一个结构,该结构中,有一个指针xdata   空间的,有一个unsigned   int   的数据是data   空间的:
struct   zbuffer   {
uchar       xdata       *ptb;             /*transmit   buffer*/
unsigned   int       data       len;    
                      ......
            }   ;

编译时就出错了,大概的意思是不认识     len这个变量,为什么。


发表于:2007-09-15 16:37:281楼 得分:0
我的地址:myruru20052yahoo.com.cn   欢迎大家给我解释。谢谢!
发表于:2007-09-15 18:12:592楼 得分:0
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];
发表于:2007-09-15 19:58:413楼 得分:0
struct   zbuffer   {
uchar       xdata       *ptb;             /*transmit   buffer*/
unsigned   int       data       len;    
                      ......
            }   ;

在结构里指定对象的存放区域会出现二异性.比如说:
当你的结构放在xdata的时候,你定义的结构变量就违反了你声明的data区域

这时编译器就为难了,所以它就不干了
发表于:2007-09-15 23:45:254楼 得分:0
很同意楼上2位说的!


快速检索

最新资讯
热门点击