Witam,
Zaciąłem się na takim przypadku.
Są dwie struktury danych o podobnej budowie, różnią się tylko długością bufora.
Problem w tym, że muszę powielać wszystkie funkcje obsługujące te dane
ponieważ nie mogę przekazać do funkcji innego typy danych (buffer_t, sbuffer_t)
Jak zrobić, żeby można wywoływać zawsze tą samą funkcję niezależnie od
przekazanej struktury?
Pozdrawiam,
sworduke
//struktury
typedef struct sbuffer_t sbuffer_t;
struct sbuffer_t {
char data[10];
uint8_t index;
uint16_t counter;
};
typedef struct buffer_t buffer_t;
struct buffer_t {
char data[20];
uint8_t index;
uint16_t counter;
};
//definicja zmiennych
buffer_t XXX;
sbuffer_t YYY;
//funkcje
void buffer_init(buffer_t *buffer) {
buffer->data[0] = '\0';
buffer->index = 0;
buffer->counter = 0;
}
void sbuffer_init(sbuffer_t *buffer) {
buffer->data[0] = '\0';
buffer->index = 0;
buffer->counter = 0;
}
//wywolanie
buffer_init(XXX);
sbuffer_init(YYY);