here are the three parts of the compiler. when i say compiler, this generally groups all three parts together, but sometimes it helps to think that the compiler is made of multiple parts.
preprocessor: basically an editor to the program that responds to "preprocessing directives." these are lines that begin with a hash mark (#) . it can edit a program, but has barely any knowledge of C so it can quite easily create wrong programs.
compiler: this is the part that actually has knowledge of C. it takes what you write and converts it into Assembly language - a lower-level language. its final output is called object code (.obj in windows)
linker: this combines all your object code into an executable program
preprocessor: basically an editor to the program that responds to "preprocessing directives." these are lines that begin with a hash mark (#) . it can edit a program, but has barely any knowledge of C so it can quite easily create wrong programs.
compiler: this is the part that actually has knowledge of C. it takes what you write and converts it into Assembly language - a lower-level language. its final output is called object code (.obj in windows)
linker: this combines all your object code into an executable program