すべてのエンティティを独自のファイルに分割するプログラムを編成しました。これはこのようなものです。
main.c
#include "student.h"
#include "subject.h"
#include "classroom.h"
#define PI 3.14
int sum(int a, int b);
生徒.h
typedef struct st student;
学生.c
#include "student.h"
件名.h
typedef struct sb subject;
subject.c
#include "subject.h"
教室.h
typedef struct cr classroom;
教室.c
#include "classroom.h"
私の問題は、教室内でStudentとsubjectが必要なことです。これをどのように含める必要がありますか?これをclassroom.hまたはclassroom.c内に含める必要がありますか?
#include "student.h"
#include "subject.h"
次に、main.cにsum()やPIなどのすべてで使用されるものがあります。
ヘッダーに実装を含めるか、実装ファイルにヘッダーを含めるのはどのように正しい方法ですか? ヘッダーまたは実装ファイルを含める必要がありますか?
すべてを単一のファイルに投げると、問題なくコンパイルされますが、これを正しく行っていないとコンパイルされません。