среда, 14 сентября 2016 г.

Статическая инициализация объединения из структуры и массива

Пример:

#define DEVICE_DESCRIPTOR     0x01
#define USB_SPECIFICATION     0x0002
#define DEVICE_CLASS          0x02      // CDC class
#define DEVICE_SUB_CLASS      0      // each configuration has its own sub-class
#define DEVICE_PROTOCOL       0      // each configuration has its own protocol
#define EP_CONTROL_LENGTH     64
#define VENDOR_ID             0x03EB // Atmel vendor ID = 03EBh
#define PRODUCT_ID            0x201F // ID устройства
#define RELEASE_NUMBER        0x1000
#define MAN_INDEX             0x00
#define PROD_INDEX            0x00
#define SN_INDEX              0x00
#define NB_CONFIGURATION      1

typedef union {
  S_usb_device_descriptor ASSTRUCT;
  unsigned char ASBUFF[18];
}U_usb_device_descriptor_u;

static const U_usb_device_descriptor_u usb_device_descriptor =
{
  .ASSTRUCT = {
    18,
    DEVICE_DESCRIPTOR,
    USB_SPECIFICATION,
    DEVICE_CLASS,
    DEVICE_SUB_CLASS,
    DEVICE_PROTOCOL,
    EP_CONTROL_LENGTH,
    VENDOR_ID,
    PRODUCT_ID,
    RELEASE_NUMBER,
    MAN_INDEX,
    PROD_INDEX,
    SN_INDEX,
    NB_CONFIGURATION 
  }
  
};

Комментариев нет:

Отправить комментарий