大量的结构错误

Multitude of struct errors

这是我正在使用的一段非常简单且无用的练习代码,它开始看起来像一本非常无用的书。我正在做一个结构练习,在代码编译时我收到了一些错误。 这是有问题的代码:

struct fish = {
    const char *name;
    const char *species;
    int teeth;
    int age;
};


void catalog(struct fish f)
{
    printf("%s is a %s with %i teeth. He is %i.\n", f.name, f.species, f.teeth, f.age);
}


int main()
{
struct fish snappy = {"Snappy", "piranha", 69, 4};

catalog(snappy);
return 0;
}

这是书中的精确代码,减去了目录上面的结构定义。我最终只是复制粘贴,因为我开始怀疑这本书完全错了。这本书声称上面的代码应该编译并且 运行 甚至没有定义结构。我试过将结构定义放入头文件中,我试过删除它或将它添加到代码的不同部分。我得到了完全相同的错误:

snappy.c:8:13: error: expected identifier or ‘(’ before ‘=’ token
struct fish = {
         ^
snappy.c:16:26: error: parameter 1 (‘f’) has incomplete type
 void catalog(struct fish f)
                      ^
snappy.c: In function ‘main’:
snappy.c:24:12: error: variable ‘snappy’ has initializer but incomplete type
 struct fish snappy = {"Snappy", "piranha", 69, 4};
        ^
snappy.c:24:12: warning: excess elements in struct initializer
snappy.c:24:12: warning: (near initialization for ‘snappy’)
snappy.c:24:12: warning: excess elements in struct initializer
snappy.c:24:12: warning: (near initialization for ‘snappy’)
snappy.c:24:12: warning: excess elements in struct initializer
snappy.c:24:12: warning: (near initialization for ‘snappy’)
snappy.c:24:12: warning: excess elements in struct initializer
snappy.c:24:12: warning: (near initialization for ‘snappy’)
snappy.c:24:17: error: storage size of ‘snappy’ isn’t known
 struct fish snappy = {"Snappy", "piranha", 69, 4};

struct fish = {struct 声明中是错误的。应该是struct fish {。删除 = 符号。