«неполный тип класса» предполагает, что ваш компилятор считает, что это код C ++, а не код C, поскольку в C нет классов.
Обратите внимание, что строка 5 делает Tptr
именем для struct tnode *
-указатель на структуру с именем "tnode", не "node", а "tnode", строчная буква t, узел.Строка 6 запускает typedef, затем начинает определять структуру с именем «узел», без «t», просто «узел».В строке 11 заканчивается определение «struct node», а затем указывается имя для более раннего определения типа: «Tnode», прописные буквы T, node.
Теперь у вас есть четыре разных имени: Tptr, Tnode, tnodeи узел.Тот, который в нижнем регистре "t" никогда не был "завершен", поэтому это "неполный тип" (но не класс, потому что C не имеет классов).