10.2. What is it used for?
Macros are snippets of code that get processed before
compilation. This is done by the C preprocessor,
#define statements are macros. Take a look at this
piece of code:
Example 10-1. box_of_stars.c
#define SIZE_OF_SQUARE 4
int i, j;
for(i = 0; i < SIZE_OF_SQUARE; i++)
for(j = 0; j < SIZE_OF_SQUARE; j++)
printf("*"); // print an asterisk for each column
printf("\n"); // and a newline at the end of each row
The output of this code will be a box:
The C preprocessor simply replaces the macro
with the value ``4''. This very useful
for two reasons:
firstly the size of the box can be changed by just editing one
line. This isn't a huge advantage in the above example as there are
just two uses of SIZE_OF_BOX but in larger programs
this make life much easier and removes the possibility of forgetting
to change one of the values.
Secondly it makes the code more readable, meaningful names can
be given to values such as #define PI 3.142857143.