При исследовании очередей в C я столкнулся с примером, подобным приведенному ниже. Почему структура называется как в начале фигурных скобок, так и после? Почему тип структуры используется снова внутри структуры при добавлении элемента того же типа? Являются ли эти вещи лишними или есть точка?
typedef void* vpoint_t;
typedef struct queue_item_t{
vpoint_t void_item;
struct queue_item_t* next;
} queue_item_t;