【发布时间】:2015-05-02 02:07:28
【问题描述】:
我需要创建一个接收结构指针和空指针的函数,如果元素在结构上,则返回 1。
typedef struct {
char *sx;
int val, code, qtty;
char abc [20];
} ST_DAT;
int compare (ST_DAT *, void *);
这是一个比较双链表中节点的程序的一部分,但是这个函数被用作:
int (*pfun)(ST_DAT *, void *));
问题是我不知道如何将void * 与其他值进行比较,直到我找到里面的值。
int compare (ST_DAT *stData, void *key)
{
if (key == (*stData).val || key == (*stData).code || key == (*stData).qtty || strcmp (key,(*stData).abc) || strcmp (key,(*stData).sx) )
{
return 1;
}else{
return 0;
}
}
这是正确的吗?
【问题讨论】:
-
应该如何调用
compare? -
... 甚至更具体:当调用
compare()时,作为第二个参数传递的内容是什么? -
...如果你输入“我”,下次按这个f...f...有趣的转变...
标签: c pointers struct compare void