1. 程式人生 > >關於incompatible types when assigning to type "a"from type "b"的bug修復

關於incompatible types when assigning to type "a"from type "b"的bug修復

此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兩個指標來操作。