driveToRun
驱动牛犊
驱动牛犊
  • 注册日期2002-11-22
  • 最后登录2009-11-21
  • 粉丝0
  • 关注0
  • 积分180分
  • 威望53点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
阅读:1733回复:0

usbioctl.h中为什么会定义大小为0的数组

楼主#
更多 发布于:2008-01-28 22:40
有谁知道在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;

有什么办法可以让编译时不出错呢?
游客

返回顶部