您尚未登录。

楼主 #1 2020-02-25 22:35:25

OggyJFX
会员
注册时间: 2019-05-21
已发帖子: 109
积分: 108.5

typedef一个很骚的写法

今天发现一个这样的写法,真骚

typedef uint32_t uint64_t[2];

离线

楼主 #3 2020-02-26 08:45:02

OggyJFX
会员
注册时间: 2019-05-21
已发帖子: 109
积分: 108.5

Re: typedef一个很骚的写法

metro 说:

union它不香吗 tongue
用匿名union可以用多种方式访问同一地址,形式也很简洁。像USB Request就很适合用这种表达方式。

typedef __packed struct _REQUEST_TYPE {
    U8 Recipient : 5;                     /* D4..0: Recipient */
    U8 Type      : 2;                     /* D6..5: Type */
    U8 Dir       : 1;                     /* D7:    Data Phase Txsfer Direction */
} REQUEST_TYPE;
typedef __packed struct _USB_SETUP_PACKET {
    REQUEST_TYPE bmRequestType;           /* bmRequestType */
    U8  bRequest;                         /* bRequest */
    __packed union {
        U16        wValue;                  /* wValue */
        __packed struct {
            U8         wValueL;
            U8         wValueH;
        };
    };
    __packed union {
        U16        wIndex;                  /* wIndex */
        __packed struct {
            U8         wIndexL;
            U8         wIndexH;
        };
    };
    U16          wLength;                 /* wLength */
} USB_SETUP_PACKET;

你没有明白人家这么写的意义。
和你说的这个,我感觉是两码事儿。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn