# operator and directive — Stringify operator and null directive
# // Null directive
# identifier
A preprocessor directive with no directive name is called a null directive . It has no effect.
The #
operator can also be
used as a unary operator, sometimes called the stringify
operator because it turns its operand into a string. It can be
used only in the macro replacement text of a #define
directive. It must be followed by a
parameter name for the macro being defined. The #
operator and the parameter name are
replaced by a string literal whose contents are the text of the macro
argument that corresponds to the macro parameter. The macro argument
is not expanded before being converted to a string. Whitespace in the
argument is condensed to a single space character between tokens;
leading and trailing whitespace is removed.
The evaluation order of #
and
##
operators is undefined. If the
order is important, you can control the order by using multiple
macros.