#pragma once typedef struct { union { float *fdata; int *idata; unsigned int *udata; unsigned char *bdata; void *data; }; int len; int capacity; int elmSize; } List; void list_initf(List *list); void list_initi(List *list); void list_initu(List *list); void list_initb(List *list); void list_pushf(List *list, float f); void list_pushi(List *list, int i); void list_pushu(List *list, unsigned int u); void list_pushb(List *list, unsigned char u); void list_free(List *list);