В C структура обычно является средством, с помощью которого происходит создание объекта.
API будет иметь функцию типа new (), которая будет выделять одну из этих структур «контекста» и обеспечиватьуказатель на него.
Этот указатель затем обычно передается любым открытым функциям из этого API.
например,
struct btree_state
*btree_state;
btree_new( &btree_state );
btree_new_element( btree_state, pointer_to_user_data );
Таким образом, мы можем иметь несколько экземпляров данногообъект.Мы выбираем, какой из них использовать указателем состояния, который мы передаем в функции API.