Два показанных определения типа структуры отделяют хранимые данные от механизма хранения.
Вы можете видеть, что Student_typedef
имеет только элементы, которые относятся к информации, подлежащей хранению, но ни один из них не относится к хранению. Цель состоит в том, чтобы иметь механизм, который может хранить множество этой структуры данных.
С другой стороны, Node_typedef
не содержит никакой информации для хранения, только один указатель на полные данные. Если структура информации, подлежащей хранению, изменится (хотя все равно будет отражена идентичным идентификатором типа Student_typedef
), то ничего об этом механизме хранения не придется менять.
Или описать его с другой стороны Угол зрения: два разработчика, работающие над базой данных студентов, должны будут только согласиться, что вся необходимая информация для каждого студента находится внутри Student_typedef
. Тогда один разработчик может обрабатывать функции программирования для ввода или редактирования данной структуры (на основе указателя на структуру, предоставляемую хранилищем), тогда как другой разработчик может обрабатывать аспекты хранилища, такие как добавление новой структуры для заполнения, удаление, оптимизация памяти, et c.
Такие методы определения интерфейса и абстракции частей кода необходимы для эффективной обработки больших проектов.