Process file as if "#include "file"" appeared as the first line of the primary source file. However,
the first directory searched for file is the preprocessor's working directory insteadof the
directory containing the main source file. If not found there, it is searched for in the remainder
of the "#include "..."" search chain as normal.
If multiple -include options are given, the files are included in the order they appear on the
The contents of definition are tokenized and processed as if they appeared during translation phase
three in a #define directive. In particular, the definition will be truncated by embedded newline
If you are invoking the preprocessor from a shell or shell-like program you may need to use the
shell's quoting syntax to protect characters such as spaces that have a meaning in the shell syntax.
If you wish to define a function-like macro on the command line, write its argument list with
surrounding parentheses before the equals sign (if any). Parentheses are meaningful to most shells,
so you will need to quote the option. With sh and csh, -D'name(args...)=definition' works.
-D and -U options are processed in the order they are given on the command line. All -imacrosfile
and -includefile options are processed after all -D and -U options.
-M Instead of outputting the result of preprocessing, output a rule suitable for make describing the
dependencies of the main source file. The preprocessor outputs one make rule containing the object
file name for that source file, a colon, and the names of all the included files, including those
coming from -include or -imacros command line options.
Exactly like -include, except that any output produced by scanning file is thrown away. Macros it
defines remain defined. This allows you to acquire all the macros from a header without also
processing its declarations.
All files specified by -imacros are processed before all files specified by -include.