私はVisual Studioを使用してCで小さなプロジェクトを開発しています。 複数のインクルードを避けるには、インクルードガードを使用しています。
ファイル:collections.h
エラー:C2061
説明:構文エラー:識別子 '末端'C VS循環依存性?エラーC2061 - 識別子構文エラー
synt_analysis.c
#include <string.h>
#include "headers\synt_analysis.h"
私はこの1つを含むエラーの多くを取得しています
synt_analysis.h
#ifndef SYNT_ANALYSIS_H
#define SYNT_ANALYSIS_H
#include "collections.h"
typedef enum {
...
}TType;
typedef enum {
...
}NTType;
typedef struct {
TType type;
...
}Terminal;
void push_terminal(Terminal terminal, cStack *stack);
#endif
本のcollections.h
#ifndef COLLECTIONS_H
#define COLLECTIONS_H
#include "synt_analysis.h"
typedef union {
int error;
Terminal terminal;
NTType nttype;
}cItemData;
typedef struct {
char *type;
cItemData content;
}cItem;
typedef struct {
unsigned cap;
unsigned used;
cItem *items;
}cStack;
#endif
コレクションはsynt_analysisによって定義Terminal
を格納することができるcStack
を提供します。
synt_analysisはcStack
(機能push_terminal
)を使用して、Terminal
をスタックにプッシュします。この機能は必要なコード量を減らすために存在します(新しいTerminal
を作成し、cStack
にプッシュします)。
コレクションに#endifはありません。h – stijn
例では忘れてしまいましたが、エラーは解決しません。 –
'#include" synt_anal.h "'は#include "headers \ synt_analysis.h"と同じファイルを含みますか? –