Typedef is very useful for portable names, tag names (typedef struct foo Foo;
) and
keeping complicated (function) declarations readable (typedef int
(*cmpfunc
The keyword typedef is definitely needed in test suites that check a C compiler for ISO-C compliance.
In code that is not explicitly supposed to use typedef (like the test suite above) it is often very helpful but never essential because it only establishes an alias to another type. It does not create a type.
Finally, I would not count things like avoiding a compiler limit on preprocessed source file size through the abbreviation typedefs can offer.