A macro is a fragment of code which has been given a name. Whenever the name is used, it is replaced by the contents of the macro as part of preprocessing.
There are two kinds of macros.
- Object-like macros: resemble data objects when used,
- function-like macros: resemble function calls
Defining a Macro
You may define any valid identifier as a macro, even if it is a C keyword. The preprocessor does not know anything about keywords. This can be useful if you wish to hide a keyword such as const from an older compiler that does not understand it. However, the preprocessor operator defined (see Defined) can never be defined as a macro, and C++'s named operators (see C++ Named Operators) cannot be macros when you are compiling C++.
Example
#define BUFSIZE 2000 // BUFSIZE is defined as 2000
#if defined BUFSIZE // we are checking if BUFSIZE is defined or not
...
#else
...
#endif