When you invoke GCC, it normally does preprocessing, compilation, assembly and linking. Then the output consists of object files output by the assembler. Other options are passed on to one stage of processing.
Some options control the preprocessor and others the compiler itself.
If the description for a particular option does not mention a source language, you can use that option with all supported languages. You can mix options and other arguments. For the most part, the order you use doesn't matter. This manual documents only one of these two forms, whichever one is not the default. Option Summary Brief list of all options, without explanations.