Home Segments Index Top Previous Next

140: Sidetrip

More sophisticated macros have parameters and take arguments. Consider, for example, the following macro, which you can use when you want to square a number:

    Parameter --*    *-- Text to be substituted  
                |    v 
                v  -----    
#define square (x) x * x        /* First version */ 

Once you have defined square as a macro, your C compiler will replace any appearance of square, and its argument, before actual compilation is done. Suppose, for example, that your program exhibits the following statement:

result = square (length); 

Then, your C compiler substitutes the character string, length, for the parameter, x, in the macro definition, producing the following statement:

result = length * length;