gpt4 book ai didi

c - 在 C 中初始化结构体时出现错误

转载 作者:行者123 更新时间:2023-11-30 15:54:57 24 4
gpt4 key购买 nike

尝试编译使用结构的 C 源文件时出现错误。我在 Ubuntu 12.04 LTS 上使用 gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3。

这是代码:

/* struct.c: Illustrates structures */
#include <stdio.h>
#include <string.h>

struct Hitter {
char last[16];
char first[11];
int home_runs;
};

int main() {
struct Hitter h1 = {"McGwire", "Mark", 70};
struct Hitter h2;
strcpy(h2.last, "Sosa");
strcpy(h2.first, "Sammy");
h2.home_runs = h1.home_runs - 4;
printf("#1 == {%s, %s, %d}\n",
h1.last, h1.first, h1.home_runs);
printf("#2 == {%s, %s, %d}\n",
h2.last, h2.first, h2.home_runs);
return 0;
}

这是错误:

$ gcc -o struct struct.c
struct.c: In function `main':
struct.c:12:9: error: parameter `h1' is initialized
struct.c:14:2: error: expected declaration specifiers before `strcpy'
struct.c:15:2: error: expected declaration specifiers before `strcpy'
struct.c:16:2: error: expected declaration specifiers before `h2'
struct.c:18:2: error: expected declaration specifiers before `printf'
struct.c:21:2: error: expected declaration specifiers before `printf'
struct.c:23:2: error: expected declaration specifiers before `return'
struct.c:24:1: error: expected declaration specifiers before `}' token
struct.c:13:16: error: declaration for parameter `h2' but no such parameter
struct.c:12:16: error: declaration for parameter `h1' but no such parameter
struct.c:24:1: error: expected `{' at end of input

以上代码来自 Chuck Allison 的 CD 培训类(class)“Thinking in C”。我知道那是一张非常旧的 CD,而且我确信结构的语法一定已经改变,但我不知道现在可能是什么。感谢您的帮助。谢谢

最佳答案

一旦我遇到了类似的情况,结果发现我尝试编译的文件的行结尾不正确。例如,从磁盘获取的文件可能会将 CR + LF 作为行尾,而预计只有 LF。这可以通过在大多数文本编辑器中打开显示不可见字符的选项来发现。

关于c - 在 C 中初始化结构体时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12642979/

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