Хорошо, у меня есть довольно хорошее понимание того, как заголовочные файлы должны использоваться в программах на C, но у меня все еще есть эта проблема, которую я, кажется, не могу обойти.Вот ситуация:
Device.c содержит #include "Device.h"
Device.h содержит определение структуры и следующий ...
#ifndef DEVICE_H
#define DEVICE_H
#include "SubDevice.h"
typedef struct {
subDevice * subDevice1;
subDevice * subDevice2;
} device;
#endif
SubDevice.c содержит #include SubDevice.h
SubDevice.h содержит определение структуры subDevice и следующее ...
#ifndef SUBDEVICE_H
#define SUBDEVICE_H
#include "Device.h"
typedef struct{
int MyInt;
double MyDouble;
}subDevice;
#endif
Проблема заключается в том, что я получаю ошибку компилятора в Device.h вмое определение структуры.В строке subDevice * subDevice1;
написано syntax error before subDevice
.
Проблема в том, что я включаю заголовочный файл другого файла в каждый файл?Я думал, что операторы #ifndef - #define предотвратят возникновение проблемы ...