Nazwa strukturalna bez nazwy w C wymaga, aby wzorzec "wzorca" był zawsze wszędzie tam, gdzie używana jest nazwa typu, więc większość ludzi używa typedef, aby utworzyć nową nazwę dla typu, który nie musi mieć ciągłego słowa kluczowego struct.
Powodem tego jest czytelność kodu, zmniejszone pisanie i prawdopodobnie również klarowność, ale typedefs może w rzeczywistości zaciemnić informacje na temat typów wskaźników.
Szczerze mówiąc, potrzeba typedef do tworzenia nowych nazw dla struktur jest reliktem i szkoda, że C99 nie podąża za C++ i nie usuwa go.
W swojej książce * Expert C Programming *, Peter van der Linden czyni sprawę, że typedefs dla structs są bezużyteczne i nie powinieneś się kłopotać. Lubię to. Wszystko, co robi typedef, oszczędza pisanie 'struct' w kilku miejscach, takich jak deklaracje i prototypy. To nie jest warte zaciemniania. Chcę od razu wiedzieć, kiedy muszę użyć '->' lub '.'. Typedefs sprawia, że jest to trudniejsze. – Jens