Developer Documentation
PATH  Mac OS X Documentation > Developer Tools > The GNU C Preprocessor


Previous | Contents | Next

Redefining Macros

Redefining a macro means defining (with #define ) a name that is already defined as a macro.

A redefinition is trivial if the new definition is transparently identical to the old one. You probably wouldn't deliberately write a trivial redefinition, but they can happen automatically when a header file is included more than once (see the section " See Header Files "), so they're accepted silently and without effect.

Nontrivial redefinition is considered likely to be an error, so it provokes a warning message from the preprocessor. However, sometimes it's useful to change the definition of a macro in mid-compilation. You can inhibit the warning by undefining the macro with #undef before the second definition.

In order for a redefinition to be trivial, the new definition must exactly match the one already in effect, with two possible exceptions:


The GNU C Preprocessor

Previous | Contents | Next