It depends. Depending on the compiler type used and flags passed, lots of conditions might happen.
Consider these for example:
- Various temporary files are frequently created by the C compiler (and subsequently removed).
- One or more object files are produced by the C compiler.
- Temporary files may be created (and deleted) by the linker in addition to producing an executable.
- Some C compilers (like gcc, for example) also serve as front-end drivers for the linker and the compiler. Any unnecessary temporary files, such as the object files produced during the compilation stage, may be deleted in this scenario by the compiler.
So depending on the system and compiler being used, there will be variations.