關於incompatible types when assigning to type "a"from type "b"的bug修復
阿新 • • 發佈:2019-02-14
此error出現的原因是因為函式引數引用不正確,a 與b 兩者型別不匹配。
關於此問題,根本原因是因為指標概念不清晰。
以下是標頭檔案DLList.h節選:
typedef struct DLListNode { int value; // value of this list item (int) struct DLListNode *prev; // pointer previous node in list struct DLListNode *next; // pointer to next node in list } DLListNode; typedef struct DLListNode *DLListNodeP; typedef struct DLListRep { int nitems; // count of items in list DLListNode *first; // first node in list DLListNode *curr; // current node in list DLListNode *last; // last node in list } DLListRep; typedef struct DLListRep *DLList; /* creates a new DLListNode, with a given val*/ DLListNode *newDLListNode(int val); // create a new empty DLList DLList newDLList();
其中,
typedef struct DLListNode *DLListNodeP;
*號跟在型別的後邊表示宣告或者定義的是指標,在變數前面是解引用符、
此處表示有一個名叫DLListNodeP的指標,型別為DLListNode。
若要引用標頭檔案中的函式,正確寫法應為:
DLListNodeP m =newDLListNode(p->value);
AddListNode_back(peaksL,m);
void AddListNode_back(DLList pList, DLListNodeP pNode)
通過DLListNodeP與DLList兩個指標來操作。