GNU Info

Info Node: (cpp-295.info)Undefining

(cpp-295.info)Undefining


Next: Redefining Prev: Concatenation Up: Macros
Enter node , (file) or (file)node

Undefining Macros
-----------------

   To "undefine" a macro means to cancel its definition.  This is done
with the `#undef' directive.  `#undef' is followed by the macro name to
be undefined.

   Like definition, undefinition occurs at a specific point in the
source file, and it applies starting from that point.  The name ceases
to be a macro name, and from that point on it is treated by the
preprocessor as if it had never been a macro name.

   For example,

     #define FOO 4
     x = FOO;
     #undef FOO
     x = FOO;

expands into

     x = 4;
     
     x = FOO;

In this example, `FOO' had better be a variable or function as well as
(temporarily) a macro, in order for the result of the expansion to be
valid C code.

   The same form of `#undef' directive will cancel definitions with
arguments or definitions that don't expect arguments.  The `#undef'
directive has no effect when used on a name not currently defined as a
macro.


automatically generated by info2www version 1.2.2.9