|
发表于 2024-1-2 10:31:50
|
显示全部楼层
- #include <stdio.h>
- typedef enum {
- TYPE_U8,
- TYPE_U16,
- TYPE_U32,
- TYPE_U8_ARRAY
- } DataType;
- typedef struct {
- DataType type;
- union {
- u8 DAT1;
- u16 DAT2;
- u32 DAT3;
- u8 DAT4[2];
- } data;
- } AAAA;
- void printData(AAAA* a) {
- switch (a->type) {
- case TYPE_U8:
- printf("DAT1: %u\n", a->data.DAT1);
- break;
- case TYPE_U16:
- printf("DAT2: %u\n", a->data.DAT2);
- break;
- case TYPE_U32:
- printf("DAT3: %u\n", a->data.DAT3);
- break;
- case TYPE_U8_ARRAY:
- printf("DAT4[0]: %u, DAT4[1]: %u\n", a->data.DAT4[0], a->data.DAT4[1]);
- break;
- default:
- printf("Unknown data type\n");
- }
- }
复制代码 |
|