麻烦求详细解释其中typedef union的用法,具体程序如下~

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;


哆啦的时光机
浏览 342回答 1
1回答

阿波罗的战车

typedef union _USB_DEVICE_STATUS{byte _byte;struct{unsigned RemoteWakeup:1;// [0]Disabled [1]Enabled: See usbdrv.c,usb9.cunsigned 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.cunsigned ctrl_trf_mem:1;// [0]RAM [1]ROM};};typedefunion _USB_DEVICE_STATUSUSB_DEVICE_STATUS;这两种写法就是合起来写和分开写的区别而已typedefunion 不是一种很特别的用法。少打几个字符而已。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.cunsigned ctrl_trf_mem:1;// [0]RAM [1]ROM};} USB_DEVICE_STATUS;就有些画蛇添足的味道了。typedefunion _USB_DEVICE_STATUSUSB_DEVICE_STATUS;可以用 USB_DEVICE_STATUS代替union _USB_DEVICE_STATUS 当作类型名使用;可以用来定义变量和内置类型区别不大。所以C语言中,这种用法比较多。C++中 自定义类型拥有和内置类型差不多的地位,这种用法就少见多了。
打开App,查看更多内容
随时随地看视频慕课网APP