The compiler compiles a C source file to an object file.
This is done in three consecutive phases.
During the first phase, the C compiler calls the preprocessor cpp
to
#include
all files and substitute all #define
s.
Then the front-end compiler compiles the preprocessed file to
assembly code.
Next, the assembler (as
) assembles the assebly code and generates
an object file.