The typedef declaration is used to give a name to a type expression without declaring a variable.
Example 1. Define the name intptr to be the type pointer to int: typedef int * intptr; Example 2. Define the name pair to be a struct with no tag, but with two int's: typedef struct { int x; int y; } pair; Example 3. Define the name number to be a union with no tag, but with either an int or a float (sharing the same storage): typedef union { int x; float y; } number;