PATH
Most preprocessor features are active only if you use preprocessor commands to request their use.
Preprocessor commands are lines in your program that start with # . The # is followed by an identifier that's the command name. For example, #define is the command that defines a macro. White-space characters are allowed before and after the # .
The set of valid command names is fixed. Programs can't define new preprocessor commands.
Some command names require arguments; these make up the rest of the command line and must be separated from the command name by one or more white-space characters. For example, #define must be followed by a macro name and the intended expansion of the macro.
A preprocessor command normally can't be more than one line. It may be split cosmetically with backslash-newline, but that has no effect on its meaning. Comments containing newlines can also divide the command into multiple lines, but the comments are changed to spaces before the command is interpreted. The only way a significant newline can occur in a preprocessor command is within a string constant or character constant. (Note that most C compilers that might be applied to the output from the preprocessor do not accept string or character constants containing newlines. This compiler does accept them, however..
The # and the command name can't come from a macro expansion. For example, if foo is defined as a macro expanding to define , that doesn't make #foo a valid preprocessor command.