【问题描述】在做《系统程序员成长计划》一书,通用双链表的过程中,发现了一个问题,所下所述:
源程序给出的测试代码如下所述:
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "dlist.h"
DListRet print_int(void *data)
{
printf("%d ", (int)data);
return DLIST_RET_OK;
}
int main(int argc, char **argv)
{
int i = 0;
DList *dlist = dlist_create();
for(i = 0; i < 100; i++)
{
assert(dlist_append(dlist, (void *)i) == DLIST_RET_OK);
}
for(i = 0; i < 100; i++)
{
assert(dlist_prepend(dlist, (void *)i) == DLIST_RET_OK);
}
dlist_print(print_int, dlist);
printf("\n");
dlist_destroy(dlist);
return 0;
}
现在的问题是,如果插入的数据类型是浮点型,例如想连续插入0.0 1.0 2.0 ... 100.0,该怎么写?
*float类型的数据无法直接转换为void *类型。
我的思路是利