未知的类型名称C.

时间:2016-12-06 18:48:04

标签: c

我知道在使用它们之前必须先定义它们,但是我收到了“未知类型名称错误。”

这是我的Node定义:

struct Node  {
    position* p;
    struct Node* next;
    struct Node* prev;
};

这是我的声明(第96行):

Node* hashtable[HashArraySize];

我收到此错误消息:

P1.c:96:1: error: unknown type name ‘Node’
 Node* hashtable[HashArraySize];

2 个答案:

答案 0 :(得分:9)

与将struct标记视为新类型名称的C ++不同,如果您希望在没有Node的情况下使用struct,则C需要显式的typedef:

typedef struct Node Node;

或者,您可以在声明中使用struct Node

struct Node* hashtable[HashArraySize];

答案 1 :(得分:6)

Node* hashtable[HashArraySize];更改为struct Node* hashtable[HashArraySize];

typedef struct Node  {
    position* p;
    struct Node* next;
    struct Node* prev;
} Node;