我正在创建一个函数,其中我需要两个不同的 struct 位于不同的文件中,所以我try 将文件包含在彼此内部,这对第一个函数有效,但其他函数给我这个错误
错误:未知的类型名称‘Actives’
"Activity"是文件中的 struct 类型
文件companies. h,其中错误是
#ifndef COMPANIES_H
#define COMPANIES_H
#ifdef __cplusplus
extern "C" {
#endif
#include "activities.h"
#define COMPANY_INITIAL_SIZE 20
#define COMENT_INITIAL_SIZE 2
#define SEARCHES_INITIAL_SIZE 20
#define RATING_INITIAL_SIZE 2
#define TEXT_MAX_SIZE 200
#define NAME_MAX_SIZE 50
#define EMAIL_MAX_SIZE 50
#define TITLE_MAX_SIZE 50
#define ADDRESS_MAX_SIZE 70
#define LOCATION_MAX_SIZE 70
#define CATEGORY_MAX_SIZE 30
#define NIF_MIN_SIZE 100000000
#define NIF_MAX_SIZE 999999999
enum category {
microCompany = 1, pmeCompany, macroCompany
};
enum state {
inactive, active
};
enum searchCamp {
nif, businessArea, nameLocation
};
enum comentState {
hidden, visible
};
typedef struct {
char title[TITLE_MAX_SIZE];
char text[TEXT_MAX_SIZE];
char userName[NAME_MAX_SIZE];
char userEmail[EMAIL_MAX_SIZE];
enum comentState states;
} Coment;
typedef struct {
int nota;
char userName[NAME_MAX_SIZE];
char userEmail[EMAIL_MAX_SIZE];
} Rating;
typedef struct {
int Nif;
char name[NAME_MAX_SIZE];
enum category categories;
int businessAreaCode;
enum state states;
char address[ADDRESS_MAX_SIZE];
char location[LOCATION_MAX_SIZE];
int postalCode;
int comentCounter, comentSize;
Coment *coments;
int ratingCounter, ratingSize;
Rating *ratings;
} Company;
typedef struct {
int counter, size;
Company *companies;
} Companies;
void freeCompanies(Companies *);
void loadCompanyFile(Companies *, char*);
void saveCompanyFile(Companies *, char *);
void insertCompanies(Companies *, Activities *); //<- line that gives the error
void insertComents(Companies *);
void insertRatings(Companies *);
void expandCompanySize(Companies *);
void searchNifCompanies(Companies);
void printCompany(Companies, int);
void editCompanies(Companies *);
char* getStringCategory(Companies *, int);
char* getStringState(Companies *, int);
void searchNameCompanies(Companies);
void removeCompanies(Companies *);
void removeComents(Companies *);
void AlterComentState(Companies *);
#ifdef __cplusplus
}
#endif
文件activities.h在哪里工作:
#ifndef ACTIVITIES_H
#define ACTIVITIES_H
#include "companies.h"
#ifdef __cplusplus
extern "C" {
#endif
#define ACTIVITIES_INITIAL_SIZE 20
typedef struct {
int activityCode;
char name[NAME_MAX_SIZE];
enum state states;
} Activity;
typedef struct {
int activityCounter, size;
Activity *activities;
} Activities;
void loadActivityFile(Activities*,char*);
void saveActivityFile(Activities*,char*);
void insertActivities(Activities*);
void removeActivities(Activities*, Companies*);
void editActivities(Activities*);
void changeActivityState(Activities*);
int verifyActivityUse(Companies*, Activities*, int);
#ifdef __cplusplus
}
#endif
#endif /* ACTIVITIES_H */