2番目の構造体が最初の構造体を配列メンバーとして使用し、それ自体に2つのポインターメンバーがある場合、Cで2つの構造体を定義しようとしています。
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;