The following options specify the target type produced by the compiler:
-E
-C
*.c.
-S
*.s.
-c
cc -c.
The output is saved in file *.o.
-m
*.so.
Without any options above, the compiler tries to build an executable.
When you build an executable, the compiler implicitly gives the option `-fmain', which includes a main function in the output file.
-fmain
This option takes effect at the translation stage.
If you give this option with -C, you will see the main
function at the end of the generated C file.