2017-09-13 217 views
-4

我聲明一個節點,但引發以下錯誤錯誤:未知類型名稱「節點」

error: unknown type name 'node'

#include <stdio.h> 

typedef struct node 
{ 
    int info; 
    node *sig; //<-- error: unknown type name 'node' 
} nodeL; 

int main(void) { 
    nodeL n; 
    printf("%x\n", n.info); 

    return 0; 
} 

我該如何解決呢?

+4

你的結構名稱是'nodo',並且你聲明'node'。 –

+0

這是一個簡單的印刷錯誤,所以應該關閉。 –

回答

-1
typedef struct nodo 
{ 
    int info; 
    struct nodo *sig; // Rather than: node *sig; 
} nodeL; 

看起來你的結構名稱node是你在結構中引用的內容。 nodo不是node

或許有一種誤解,認爲nodo(或node)是C類型。這不是一種類型。但是struct nodo在問題代碼中定義。

+0

你的答案只是代碼,沒有解釋爲什麼你改變了你已經改變的東西 –

1

您必須記住C編譯器不知道什麼是節點或節點(您可能在結構體名稱中輸入了錯誤),它不是C主類型。 此時nodo是一個結構類型,且必須「說」它的編譯器,如:

typedef struct nodo 
{ 
    int info; 
    struct nodo *sig; 
} nodeL; 

的結構內部的屬性附加傷害nodo *sig;聲明瞭一個成員的簽名是一個定義指針結構類型。