有人可以帮助我"未知类型名称' treeElement'"错误?

时间:2017-12-17 22:51:03

标签: c

typedef void* treeElementData;

// A linked list node - instrument for define the sons of treeElement
typedef struct sons_list {
    treeElementData data;
    struct tree_element *next;
} sonsList;

typedef struct tree_element {
    treeElementData data;
    sonsList* sons_element;
    treeElement* parent;                // Here is the place of the error.
} treeElement;

typedef struct tree_root {
    treeElement* root;
} treeRoot;

有人可以帮我解决这个问题吗?

unknown type name 'treeElement' error

1 个答案:

答案 0 :(得分:2)

当您声明结构时,您的typedef尚未生效(typedef在结构声明的末尾可用(即:} treeElement;之后)

您需要使用complet符号来引用您的结构struct tree_element* parent

如果你绝对想在结构声明中使用你的define,你可以在之前设置你的typedef:

typedef struct tree_element treeElement;
struct tree_element {
    treeElementData data;
    sonsList* sons_element;
    treeElement* parent;
};

但是,输入一个尚未在我看来声明的结构,这似乎有点奇怪。