I am trying to understand the difference between a typedef and define. There are a lot of good posts specially at this previous question on SO, however I can\'t understand the p
A preprocessor is an "engine" executed before the compiler compiles code.
#define #include are preprocessor directives or macros, so the preprocessor engine executes code related to the directives. When the preprocessor is done the compiler sees nothing of the directives/macros.
However constructs such as typedef, if, while etc.. are understood by the compiler.