#define XBYTE ((unsigned char volatile xdata *) 0)XBYTE[0x2A10] = 0x03;

解决方案 »

  1.   

    也就是说XBYTE 是内存地址的首地址
    XBYTE[0x2A10] = 0x03;是指0x2A10内存区域赋值成为0x03
      

  2.   

    在地址 0x2A10 处写一个字节 0x03
      

  3.   

    要根据替代原则变为:
    ((unsigned char volatile xdata *) 0)[0x2A10] = 0x03;
    根据字面解释为:
    0转化为unsigned char volatile xdata 的指针。
    a[0x2A10] 表示*(a+0x2A10);
    所以原来的将变为:
    *(0+0x2A10) = 0x03;
    所以如楼上所说。
    能多写一些代码么?
    xdata是什么呢?至少我是不清楚。
      

  4.   

    xdata 是指外部数据存储器,我只知道在单片机的c语言中是这样定义的。
      

  5.   

    要根据替代原则变为:
    ((unsigned char volatile xdata *) 0)[0x2A10] = 0x03;
    根据字面解释为:
    0转化为unsigned char volatile xdata 的指针。
    a[0x2A10] 表示*(a+0x2A10);
    所以原来的将变为:
    *(0+0x2A10) = 0x03;
    所以如楼上所说。************************
    狂晕!define 有这样的用法么?(unsigned char volatile xdata *) 0 能这么用么
    那里有相关的资料介绍?
    能多写一些代码么?
    xdata是什么呢?至少我是不清楚。  
      

  6.   


    xdata 定义的是外部存储器,可能是端口
      

  7.   

    xdata 定义的是外部存储器
    其实XBYTE就是一个指向了一个内存区的指针
    并使XBYTE[0x2A10] = 0x03;