当第二个结构使用第一个作为数组成员并且自身有两个指针成员时,我试图在 C 中定义两个结构。
Visual Studio 不喜欢我的代码:
语法错误:“}”
语法错误:标识符“tokenListNode”
语法错误:在“*”之前缺少“{”
知道如何解决这个问题吗?
--> 请注意,无论有没有我在代码开头添加的声明,都会出现错误。
--> 另外,如果有人能向我解释一下结构体大括号前后的标识符有什么区别,我将不胜感激。
下面是代码:
#define ARRAY_SIZE 100
struct tokenListNode;
struct TOKEN_LIST_NODE;
enum TOKEN_TYPE
{
id = 0,
INT_NUM,
INT_REAL,
ASSIGNMENT_OP,
RELATION_OP,
ARITHMETIC_OP
} tokenType;
typedef struct TOKEN
{
char* lexema;
enum TOKEN_TYPE type;
int lineNumber;
} token;
typedef struct TOKEN_LIST_NODE
{
token tokenArray[ARRAY_SIZE];
tokenListNode* prevNode;
tokenListNode* nextNode;
int tokenCounter;
}tokenListNode;