我对 C 不是很熟悉,当我尝试使用 C 构建一个链表时,我遇到了一个小问题,希望有人为我澄清一下。
到目前为止,这是我的代码:
typedef struct {
struct dlinkNode_t *next;
struct dlinkNode_t *prev;
void *value;
} dlinkNode_t;
dlinkNode_t* getNext(dlinkNode_t *ptr){
/**return the next node of the node pointed by ptr. Return NULL if next element*/
return ptr->next;
当我尝试编译它时,我收到以下警告:
"warning: return from incompatible pointer type"
我将 dlinkNode_t 定义为链表节点的类型,每个节点有 2 个指向前后的指针。我应该将 getNext 的返回类型定义为:
struct dlinkNode_t*
但这似乎违背了 typedef 的目的,因为我想将 dlinkNode 定义为一个新类型。任何帮助都会很好。
谢谢!