解决方法
这通常使用void指针完成:
typedef struct node { struct node *next; void *data; } node; node *insert(node *list,void *data) { } node *delete(node *list,node *to_delete) { }
这些操作函数不依赖于实际的数据类型,因此可以一般地实现它们.例如,您可以为上面的数据字段提供数据类型结构:
typedef struct data { int type; void *data; } data; /* .... */ data d; d.type = INT; d.data = malloc(sizeof(int)); node n = {NULL,(void*)&data);