Я создал два класса "DEVICE_s" и "DEVICE_SET_s" следующим образом:
Device_Manager.h
typedef struct DEVICE_s DEVICE_s;
typedef struct DEVICE_SET_s DEVICE_SET_s;
Device_Manager.c
struct DEVICE_s
{
uint32_t IP;
TYPE_e Type;
METHOD_e Method;
GROUP_RULE_e GroupRule;
char Name[NAME_SIZE];
};
struct DEVICE_SET_s
{
uint8_t Total;
uint8_t Used;
uint8_t Available;
DEVICE_s Set[SET_SIZE];
};
DEVICE_s Instance;
DEVICE_SET_s Objects;
Потому что я поставилэти два класса в одном файле, все функции, которые манипулируют переменными «Instance» и «Objects», объединены внутри этого файла.
Я думаю, что этот способ плох, учитывая модульность, поэтому я хочу создать другой источникфайл для отдельного управления классом "DEVICE_SET_s", например:
DeviceSet_Manager.h
typedef struct DEVICE_SET_s DEVICE_SET_s;
DeviceSet_Manager.c
#include "Device_Manager.h"
#include "DeviceSet_Manager.h"
struct DEVICE_SET_s
{
uint8_t Total;
uint8_t Used;
uint8_t Available;
DEVICE_s Set[SET_SIZE]; //Oops! Incomplete Type Is Not Allowed
};
Однако, с точки зрения DeviceSet_Manager.c, класс "DEVICE_s" не виден (не полный тип).
Как это исправить?Спасибо