gpt4 book ai didi

c - C 混淆中的结构

转载 作者:太空宇宙 更新时间:2023-11-04 03:00:32 25 4
gpt4 key购买 nike

我有一个 c 文件,它以我正在调用的 stringtable 结构开头,看起来像这样

struct stringtable {
int table[];
int numElements = 15;
};

我有一个标题,它有这个 typedef

typedef stringtable *stringtable_ref;

当我用 gcc 编译时,我得到了错误:预期的标识符或 '(' 在 '[' 标记之前预期的 ':' 在 'int' 之前

就像我声明的结构错误一样。我以前在 C 中做过这样的结构,所以我的问题是:我在声明我的结构时犯了错误吗?分号前需要有标签吗?是否只有某些地方允许我声明结构?

最佳答案

struct stringtable {
int table[];
int numElements = 15;
};

int table[]; 这样的灵活数组成员只能是 structlast 成员(至少还有一个成员).

并且您不能在 struct 声明中为成员分配默认值,C 不支持。

关于c - C 混淆中的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12697434/

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