gcc has a very large number of options. Here I am writing some of them to help remember some common usages.
Using gcc with -S option will generated assembly code and then stop. For example:
$ gcc -S helloworld.c
Using gcc with -E will only run preprocessor.
$ gcc -E helloworld.c -o helloworld.i