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

最佳答案

在声明结构时,typedef尚未生效(typedef在结构声明的末尾可用(即:在} treeElement;之后)
您需要使用complett符号来引用您的结构,所以struct tree_element* parent
如果您绝对希望在结构声明中使用define,那么您可以在此之前设置typedef:

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

但在我看来,对一个还没有声明的结构进行typedef似乎有点奇怪。

关于c - 有人可以帮助我解决“未知类型名称'treeElement'”错误吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47860231/

10-13 08:27