typedef type-declaration synonym;
The typedef keyword defines a synonym for the specified type-declaration. The identifier in the type-declaration becomes another name for the type, instead of naming an instance of the type. You cannot use the typedef specifier inside a function definition.
A typedef declaration introduces a name that, within its scope, becomes a synonym for the type given by the decl-specifiers portion of the declaration. In contrast to the class, struct, union, and enum declarations, typedef declarations do not introduce new types — they introduce new names for existing types.
// Example of the typedef keyword
typedef unsigned long ulong;
ulong ul; // Equivalent to "unsigned long ul;"
typedef struct mystructtag
mystruct ms; // Equivalent to "struct mystructtag ms;"
typedef int (*funcptr)(); // funcptr is synonym for "pointer
// to function returning int"
funcptr table; // Equivalent to "int (*table)();"