在 C 语言中定义结构时的语法错误标识符

Syntax error identifier when defining a struct in C

提问人:Foreastbtch 提问时间:5/8/2022 最后编辑:Foreastbtch 更新时间:5/8/2022 访问量:360

问:

我已经在 C 文件中定义了这些结构,但我不知道为什么会出现此编译错误。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<malloc.h>
#include<string.h>

//using namespace std;

typedef struct Gradina{
    char* denumire;
    int nrFlori;
    float* preturi;
}Gradina;

typedef struct Nod {
    Gradina* info;
    Nod* next, * prev; //the first syntax error points here
}Nod; //the second error points here

我遇到了 37 个语法错误,我不知道为什么。 我正在使用 Visual Studio 2022。enter image description here

c 编译器错误 语法错误

评论

0赞 Some programmer dude 5/8/2022
如果切换到选项卡,则会以文本形式获得生成输出(包括错误)。请将文本复制粘贴到您的问题中。请尝试创建一个适当的最小可重现示例向我们展示,并在代码中您收到错误的确切行上添加注释。Output
0赞 Some programmer dude 5/8/2022
提示一下,何时定义类型别名?你什么时候尝试使用那个类型别名?Nod
0赞 Foreastbtch 5/8/2022
Nod 就在那里定义,我尝试有两个引用,一个指向前一个节点,另一个指向下一个节点。这是一个二元分配的列表。
1赞 Weather Vane 5/8/2022
不,已看到,但直到下一行才看到。struct NodNod
0赞 Foreastbtch 5/8/2022
那么有没有办法让它发挥作用呢?

答:

2赞 pmg 5/8/2022 #1
typedef struct Nod {
    Garden* info;
    Nod* next, * prev;
}Nod;

该类型在最终之前不存在,尤其是在上面的第 3 行。你需要Nod;

     struct Nod* next, * prev;

其中,即使尚未定义,也可以使用指向它的指针。struct Nod

评论

0赞 Foreastbtch 5/8/2022
这在重建后起作用了,谢谢!