1 回答
TA贡献1862条经验 获得超6个赞
typedef union _USB_DEVICE_STATUS
{
byte _byte;
struct
{
unsigned RemoteWakeup:1;// [0]Disabled [1]Enabled: See usbdrv.c,usb9.c
unsigned ctrl_trf_mem:1;// [0]RAM [1]ROM
};
} USB_DEVICE_STATUS;
相当于
union _USB_DEVICE_STATUS
{
byte _byte;
struct
{
unsigned RemoteWakeup:1;// [0]Disabled [1]Enabled: See usbdrv.c,usb9.c
unsigned ctrl_trf_mem:1;// [0]RAM [1]ROM
};
};
typedef
union _USB_DEVICE_STATUS
USB_DEVICE_STATUS;
这两种写法
就是合起来写和分开写的区别而已
typedef
union 不是一种很特别的用法。
少打几个字符而已。
C++ :
struct,uion, class, enum 定义的名字可以单独使用
一般不会再写,像这样的代码,除非想写和C兼容的代码
C:
struct A{。。。。};
union B{。。。};
enum C{。。。};
A,B,C不是一个类型名字。struct A ,union B,enum C 才是类型名字。
C++:
struct A{...};union B{...};enum C{..};class T{...};
A,B,C,T 都是类型名字,可以直接定义变量。
typedef union _USB_DEVICE_STATUS
{
byte _byte;
struct
{
unsigned RemoteWakeup:1;// [0]Disabled [1]Enabled: See usbdrv.c,usb9.c
unsigned ctrl_trf_mem:1;// [0]RAM [1]ROM
};
} USB_DEVICE_STATUS;
就有些画蛇添足的味道了。
typedef
union _USB_DEVICE_STATUS
USB_DEVICE_STATUS;
可以用 USB_DEVICE_STATUS代替union _USB_DEVICE_STATUS 当作类型名使用;
可以用来定义变量和内置类型区别不大。
所以C语言中,这种用法比较多。
C++中 自定义类型拥有和内置类型差不多的地位,这种用法就少见多了。
- 1 回答
- 0 关注
- 341 浏览
添加回答
举报