gpt4 book ai didi

c - 在 C 中初始化结构数组没有按预期工作

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

为什么这行不通:

#define PORT_ID_MAX_CHAR                6

typedef struct {
int phys;
char name[PORT_ID_MAX_CHAR];
}tPortMap;

struct tPortMap c_portMap[] = { 0, "test" }, { 1,"test" };

GCC 冲我咆哮说 myfile.c:8:46: error: expected identifier or ‘(’ before ‘{’ token
struct tPortMap c_portMap[] = { 0, "test"}, { 1,"test"};
我不知道为什么...我很困惑...

编辑1

使用额外的大括号我得到错误:struct tPortMap c_portMap[] = {{ 0, "test"}, { 1,"test"}};

myfile.c:8:17: 错误:数组类型的元素类型不完整
struct tPortMap c_portMap[] = {{ 0, "test"}, { 1,"test"}};

最佳答案

您需要另一对括号将数组元素的数据括起来。

此外,您不需要使用 struct tPortMap,因为您已经typedefed tPortMap

tPortMap c_portMap[] = { { 0, "test" }, { 1,"test" } };
^^ ^^

当你使用

struct tPortMap c_portMap[] = { { 0, "test" }, { 1,"test" } };

编译器认为您正在声明一个新的 struct,这显然是不完整的。

关于c - 在 C 中初始化结构数组没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35995239/

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