gpt4 book ai didi

C 结构体,不完整字段类型

转载 作者:行者123 更新时间:2023-12-02 03:24:11 28 4
gpt4 key购买 nike

我的结构声明的片段:

struct record{
char type[4];
uint32_t data_size;
uint32_t flags;
uint32_t id;
uint32_t revision;
uint16_t version;
uint16_t unknown;
uint8_t *data;
};

struct group;

union subgroup_record{
int type;
struct group subgroup;
struct record record;
};

struct record_list{
union subgroup_record subgroup_record;
struct record_list *next;
};

struct group{
char type[4];
uint32_t group_size;
uint8_t label[4]; // depends on group_type
int32_t group_type;
uint16_t stamp;
uint16_t unknown1;
uint16_t version;
uint16_t unknown2;
struct record_list record_list;
};

struct group_list{
struct group group;
struct group_list *next;
};

struct plugin{
struct record header;
struct group_list top_groups;
};

编译器给我这个错误:

error: field ‘subgroup’ has incomplete type

向前声明结构没有帮助,对结构进行类型定义和更改声明也没有帮助,我宁愿不要到处都有指针(对于初学者来说,分配和释放内存有点可怕)

有什么解决办法吗?

谢谢!

最佳答案

您有一个循环递归定义。

类型struct group包含类型struct record_list,该类型包含类型union subgroup_record,该类型包含类型struct group

类型不能包含自身。

关于C 结构体,不完整字段类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39422079/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com