Доброго времени суток.
есть структура struct Base и к ней кучка функций. Кроме этого определенно несколько типов для коллбэк функций, которые принимают указатель на структуру в качестве параметра
Возникла надобность расширить структуру для опрелённой функциональности. Но саму структуру менять не хочется, да и не надо, так как в других местах эта функциональность не нужна. Что делать? Есть две идеи:
1) добавить в структуру struct Base поле указатель на void, где жаждущие могут сложить всё дополнительное
2) Создать структуру типа
struct MyCustomStruct
{
struct Base base;
t_whatever whatever;
....
}
Соблюдая выравнивание, указатель на struct MyCustomStruct будет также указывать на Base. Таким образом его можно будет передавать в коллбэк функции и вроде как счастье.
Покритикуйте, пожалуйста, оба подхода и если есть другая идея, поделитесь ими :)