When you invoke GNU CC, it normally does preprocessing, compilation, assembly and linking. For example, the -c option says not to run the linker. 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. The gcc program accepts options and file names as operands. 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.