Typedef is very useful for portable names, tag names (typedef struct foo Foo;) and keeping complicated (function) declarations readable (typedef int (*cmpfunc
typedef struct foo Foo;
typedef int (*cmpfunc
doesn't 'extremely useful' mean requied?
not even hard for me to think about a project with struct for each struct member,pointer,arguement,and so on.
struct