C Preprocessor Explained Part 1