Я искал применение ОО с помощью c. По сути, план, который я получил об этом, таков:
У каждого объекта был свой файл
Открытые функции и переменные определены в файле .h для объекта
Закрытые переменные и функции находятся в файле .c.
//HEADER
typedef struct channelobj * ChannelOBJ;
ChannelOBJ newChannelOBJ();
void setVolume(ChannelOBJ,float);
void setMute(ChannelOBJ,int);
void setNumberOfInputs(ChannelOBJ,int);
//SOURCE
struct channelobj {
//int privateint;
//char *privateString;
float volume=1;
int mute=0;
int numberOfInputs=0;
short int *leftoutput;
short int *rightoutput;
};
ChannelOBJ newChannelOBJ(){
ChannelOBJ channel=(ChannelOBJ)malloc(sizeof(struct channelobj));
bzero(channel, sizeof(struct channelobj));
return channel;
}
Мне пока очень нравится этот подход. В моем примере кода я показал определение структуры с именем channelobj в моем заголовочном файле. Я не уверен в правильном синтаксисе для аналогичного определения объединения в заголовочном файле.
Мой союз в исходном файле будет выглядеть следующим образом.
typedef union {
struct {
SInt16 high;
SInt16 low;
} parts;
UInt32 word;
} IntConverter;
Как бы я определить это в заголовочном файле?