typedef changes the name of something.
typedef int INTEGER;
makes int INTEGER, so a dec for int would be
INTEGER variable = 9001;
though as far as i know it is only to keep consistency for MultiPlatform APIs and making lives easier so we do not need to write stuff like unsigned long every time.
typedef double dub;
dub DoubleVariable = 9001;
typedef unsigned long ULONG;
ULONG prettyLargeNumber = 9001;
same with pointer to stuff names
example
typedef char* pointer_to_a_character;
pointer_to_a_character String = "Hello";
cout << String;