您尚未登录。

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

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

typedef一个很骚的写法

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

typedef uint32_t uint64_t[2];

离线

#2 2020-02-26 01:26:52

metro
会员
注册时间: 2019-03-09
已发帖子: 445
积分: 489

Re: typedef一个很骚的写法

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;

离线

楼主 #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;

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

离线

#4 2020-02-26 11:00:34

checkout
会员
注册时间: 2018-11-09
已发帖子: 173
积分: 168

Re: typedef一个很骚的写法

有个更骚的。

#define ;;

离线

#5 2020-02-26 11:13:54

迪卡
会员
所在地: 河北
注册时间: 2018-11-02
已发帖子: 916
积分: 903
个人网站

Re: typedef一个很骚的写法

#define mian main
#define MAIN main
#define MIAN main

离线

#6 2020-02-26 11:14:30

迪卡
会员
所在地: 河北
注册时间: 2018-11-02
已发帖子: 916
积分: 903
个人网站

Re: typedef一个很骚的写法

迪卡 说:

#define mian main
#define MAIN main
#define MIAN main

解决小白问题的神头文件

离线

#7 2020-02-26 11:17:41

daydayup
会员
注册时间: 2017-10-09
已发帖子: 343
积分: 343

Re: typedef一个很骚的写法

迪卡 说:

#define mian main
#define MAIN main
#define MIAN main

骚操作

离线

#8 2021-08-27 19:48:00

hameyou
会员
注册时间: 2018-04-15
已发帖子: 196
积分: 8.5

Re: typedef一个很骚的写法

checkout 说:

有个更骚的。

#define ;;

你这编译报错啊

离线

页脚

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

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