 <p>typedef is not a global variable, it's simply an alias for another type. I usually use them for function pointers when I'm passing those around because writing them out every time is annoying. </p> <p><code>typedef int (*function)(int, int);</code></p> <p>I also use them to define a structure, union, or enumeration as a type</p> <pre><code>typedef struct { int x; int y; int z; } Point; </code></pre>