Answer from cs61c-bd (Dae-hyeon Wi 17782249) for Question 1 The purpose of the C preprocessor is defining constants and macros. The defined const and macros are substituted when compiling source. C preprocessor reads statements like #define, #include, and converts the symbol in source code into defined thing, like macro, header file, constant. If it were a separate stpe in Figure 3.21, it should be placed before compiler, because it converts symbols in code into defined one.