Macros
A macro is a fragment of code that is given a name. You can define a macro using the #define preprocessor directive.
There are two types of macros :
- Object-like Macros is an identifier that is replaced by value. It is widely used to represent numeric constants.
Example :- #define PI 3.14
// PI is the macro name which will be replaced by the value 3.14.
- Function-like Macros looks like function call.
Example :- #define MIN(a,b) ((a)<(b)?(a):(b))
// MIN is the macro name.
C Preprocessor
The C Preprocessor is not a part of the compiler, but is a separate step in the compilation process. In simple words, Preprocessor is just a text substitution tool and it instructs the compiler to do required pre-processing before the actual compilation. All preprocessor directives starts with hash # symbol.
Some preprocessor directives is given below :
|
S No. |
Directives |
Description |
|
1. |
#define |
Substitutes a preprocessor macro. |
|
2. |
#include |
Inserts a particular header from another file. |
|
3. |
#undef |
Undefines a preprocessor macro. |
|
4. |
#ifdef |
Returns true if this macro is defined. |
|
5. |
#ifndef |
Returns true if this macro is not defined. |
|
6. |
#if |
Tests if a compile time condition is true. |
|
7. |
#else |
The alternative for #if. |
|
8. |
#elif |
#else and #if in one statement. |
|
9. |
#endif |
Ends preprocessor conditional. |
|
10. |
#error |
Prints error message on stderr. |

