Возможно, имелись в виду различия между использованием typedef для структур и предварительным декларированием в контексте языков программирования, например C и C++.
Typedef создаёт псевдоним для существующего типа данных, но не создаёт новый тип. 5 С помощью typedef можно избежать повторения ключевого слова struct при объявлении переменных. 5 Однако использование typedef может привести к загромождению глобального пространства имён, что может быть проблематично для больших программ. 5
Предварительное декларирование (forward declaration) позволяет объявить структуру в ситуации, когда её фактическое определение недоступно. 3 С помощью предварительного декларирования компилятор может интерпретировать другие объявления, которые иначе он не смог бы обработать. 3
Таким образом, основное отличие заключается в том, что typedef не позволяет применить предварительное декларирование, так как для такой конструкции нет имени в пространстве имён тегов, а имя есть только в пространстве имён typedef. 1 Чтобы применить предварительное декларирование, нужно задать имя для пространства имён тегов. 1