阅读:1786回复:0
usbioctl.h中为什么会定义大小为0的数组
有谁知道在usbioctl.h中为什么要定义大小为0的数组?
比如以下定义中data数组和pipelist数组的定义: typedef struct _USB_DESCRIPTOR_REQUEST { ULONG ConnectionIndex; struct { UCHAR bmRequest; UCHAR bRequest; USHORT wValue; USHORT wIndex; USHORT wLength; } SetupPacket; UCHAR Data[0]; } USB_DESCRIPTOR_REQUEST, *PUSB_DESCRIPTOR_REQUEST; typedef struct _USB_NODE_CONNECTION_INFORMATION_EX { ULONG ConnectionIndex; /* usb device descriptor returned by this device during enumeration */ USB_DEVICE_DESCRIPTOR DeviceDescriptor; UCHAR CurrentConfigurationValue; UCHAR Speed; BOOLEAN DeviceIsHub; USHORT DeviceAddress; ULONG NumberOfOpenPipes; USB_CONNECTION_STATUS ConnectionStatus; USB_PIPE_INFO PipeList[0]; } USB_NODE_CONNECTION_INFORMATION_EX, *PUSB_NODE_CONNECTION_INFORMATION_EX; 有什么办法可以让编译时不出错呢? |
|