下面的代碼段在Eclipse不編譯:上編譯時顯示簡單的C代碼不起作用(typedef的相關)
typedef int Data;
typedef struct node* Node;
typedef struct node {
Data data;
Node next;
};
int main() {
Node n = newNode();
return 0;
}
Node newNode() {
Node newNod;
newNod = malloc(sizeof(struct node));
if(!newNod){
return NULL;
printf("\naa");
}
newNod->data = 3;
return newNod;
}
的一個錯誤是
error: conflicting types for 'newNode'* (line with newNode() method declaration "Node newNode() {").
我很無能。怎麼了?
「方法聲明」?聽起來像你正在使用C++編譯器。無論如何,它不喜歡名稱'newNode'用於函數名稱和變量名稱。 –
@EugeneSh。它被用作函數名稱,但沒有變量具有該名稱... –
@CavanPage正確...誤讀它。 –