The typedef declaration provides a way to create an alias that can be used anywhere in place of a (possibly complex) type name.
Syntax
typedef type_declaration;
Explanation
The declaration that follows the keyword typedef is otherwise usual simple declaration (except that other type specifiers, e.g. static, cannot be used). It may declare one or many identifiers on the same line (e.g. int and a pointer to int), it may declare array and function types, pointers and references, clas