gpt4 book ai didi

C 编译器无意义的错误?

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

我有以下用 C 编写的代码:

n.    struct UDSData {
char *name;
char *address;
};

n. char UDS1[16] = "fill up sixteen", UDS2[16] = "fill up sixteen";

n. while (something) {
...

108. char UDS1Temp[16], UDS2Temp[16];
109. strcpy(UDS1Temp, UDS1);
110. strcpy(UDS2Temp, UDS2);
111.
112. struct UDSData item = {UDS1Temp, UDS2Temp};
113. UDSCodes[UDSTotal++] = item;
}

知道为什么代码编译会出现这些错误:

1><file>(112): error C2143: syntax error : missing ';' before 'type'
1><file>(113): error C2065: 'item' : undeclared identifier
1><file(113): error C2440: '=' : cannot convert from 'int' to 'UDSData'

删除 strcpy() 并将 UDS1UDS2 直接输入到结构中。

最佳答案

您几乎可以肯定使用的是早期编译器标准,例如 C89,它不允许混合声明和代码。您需要在代码块的开头附近声明 item。像这样:

char UDS1Temp[16], UDS2Temp[16];
struct UDSData item = {UDS1Temp, UDS2Temp};

strcpy(UDS1Temp, UDS1);
strcpy(UDS2Temp, UDS2);
UDSCodes[UDSTotal++] = item

由于您只是将指针放入结构中,因此可以在 strcpy 之前完成初始化。但是您必须在这两个字符数组之后声明UDSData

关于C 编译器无意义的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15921180/

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