compiling is the process of converting source code to machine code
but it actually consists of the following steps:
pre-processing
compiling
assembling
linking
(when we say compile, we are actually referring to these four steps, but we wont dwell on such low-level details)
pre-processing - looks for "#" , and then finds-and-replaces, copy-and-pastes
cs50 week 2 video 12:40
source: cs50