我知道在使用它们之前必须先定义它们,但是我得到了一个"未知类型名称错误".
这是我的Node定义:
struct Node {
position* p;
struct Node* next;
struct Node* prev;
};
Run Code Online (Sandbox Code Playgroud)
这是我的声明(第96行):
Node* hashtable[HashArraySize];
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
P1.c:96:1: error: unknown type name ‘Node’
Node* hashtable[HashArraySize];
Run Code Online (Sandbox Code Playgroud)
与将struct标记视为新类型名称的C++不同,如果您希望在Node不使用时使用C,则需要显式的typedef struct:
typedef struct Node Node;
Run Code Online (Sandbox Code Playgroud)
或者,您可以struct Node在声明中使用:
struct Node* hashtable[HashArraySize];
Run Code Online (Sandbox Code Playgroud)
更改Node* hashtable[HashArraySize];到struct Node* hashtable[HashArraySize];
要么
typedef struct Node {
position* p;
struct Node* next;
struct Node* prev;
} Node;
Run Code Online (Sandbox Code Playgroud)