Скажем, у меня есть структура, определенная где-то глубоко в низкоуровневом коде, который используется повсеместно самыми безумными и неизвестными способами:
struct T {
unsigned short name_len;
char d_name[LENGTH];
}
С сопутствующими функциями, которые заполняют d_name тем, что нужно поместить туда, например
struct T* fill( somethingOrOther* X)
И я хотел бы расширить старую функцию struct +, чтобы включить новую переменную:
struct T {
unsigned short name_len;
char d_name[LENGTH];
unsigned short type_len;
char d_type;
}
и новая версия функции также заполнит переменную d_type полезными вещами.
Будет ли этот тип изменений нарушать API? Разве я не могу просто использовать новый T вместо старого T и получить дополнительный доступ к новым членам?