C Programming Preprocessor and Macros
C Programming Preprocessor and Macros
Preprocessor extends the power of C programming language. Line that beg in with # are called preprocessing
directives.
Use of #include
Let us consider very common preprocessing directive as below:
#include <stdio.h>
Here, "stdio.h" is a header file and the preprocessor replace the above line with the contents of header file.
Use of #define
Preprocessing directive #define has two forms. The first form is:
#define identifier token_string
token_string part is optional but, are used almost every time in program.
Example of #define
#define c 299792458 /*speed of light in m/s */
The token string in above line 2299792458 is replaced in every occurance of symbolic constant c.
C Program to find area of a cricle. [Area of circle=r 2]
#include <stdio.h>
#define PI 3.1415
int main(){
int radius;
float area;
printf("Enter the radius: ");
scanf("%d",&radius);
area=PI*radius*radius;
printf("Area=%.2f",area);
return 0;
}
Output
Enter the radius: 3
Area=28.27
Syntactic Sugar
Syntactic sugar is the alteration of programming syntax according to the will of programmer. For example:
#define LT <
Again, the token string is optional but, are used in almost every case. Le t us consider an example of macro
definition with argument.
#define area(r) (3.1415*(r)*(r))
Here, the argument passed is r. Every time the program encounters area(argument) , it will be replace
by (3.1415*(argument)*(argument)) . Suppose, we passed (r1+5) as argument then, it expands as below:
area(r1+5) expands to (3.1415*(r1+5)*(r1+5))
Value
__DATE__
__FILE__
__LINE__
__STDC__
__TIME__
Output
Current time: 19:54:39