The preprocessor takes the preprocessor directive and interprets it. For example, if #include<stdio.h>
directive is present in the program, then the preprocessor interprets the directive and replace this directive with the content of the stdio.h
file.
Compiler creates the object code.
Linker links the object code with the libraries and creates an executable file.
Loader puts the program in memory
CPU takes each instruction and executes it.
Note: the image above has been taken from the book C how to program by deitel and deitel 5th edition