C编译错误:未知类型名称'__evenaccess'

Bla*_*400 2 c gcc compiler-errors

我知道这个话题已被打死,但在查看了很多代码示例后,我似乎无法找到这种结构的任何错误.它直接来自公司的司机.让我知道你的想法:

struct Descriptor
{
    __evenaccess uint32_t   status;
#if __LIT                               
    /* Little endian */
    __evenaccess uint16_t   size;
    __evenaccess uint16_t   bufsize;
#else                                   
    /* Big endian */
    __evenaccess uint16_t   bufsize;
    __evenaccess uint16_t   size;

#endif
    int8_t                  *buf_p;
    struct Descriptor       *next;
};

typedef struct Descriptor ethfifo;
Run Code Online (Sandbox Code Playgroud)

由于它无法识别结构我也得到了很多这些:错误:'ethfifo'没有名为'status'的成员

谢谢!

Zan*_*ynx 6

我通过搜索找到了以下文档__evenaccess:http: //documentation.renesas.com/doc/products/tool/apn/rej06j0102_rxc_rxmg_sh_ap.pdf

它显然来自SuperH和RX芯片的编译器.其含义是创建使用仅读取该大小值的指令读取值的机器代码.

否则,编译器可以uint16_t通过读取uint32_t和移位来自由读取a .在许多系统中,效率会更高.

但是在处理可能导致总线错误或硬件未定义行为的机器寄存器时.