AsegGasiaBlog

C Programming Part 13

Preprocessor
Preprocessor directives are actually the instructions to the compiler itself.

They are operated directly by the compiler.


The most common preprocessor directives are:

  • include directive
  • define directive

include directive:

The include directive is used to include files.

Example :


#include <stdio.h>

Here, stdio.h is a header file and the preprocessor replace the above line with the contents of header file.


define directive :

It is used to assign names to different constants or statements which are to be used repeatedly in a program.

These defined values or statement can be used by main or in the user defined functions as well.


Preprocessing directive #define has two forms.

  • #define identifier token_string
  • Macros with argument

NOTE :

  • Preprocessor statements begin with a hash symbol(#).
  • Preprocessors are NOT terminated by a semicolon.

Define  Indentifier Token

token_string : is optional but, are used almost every time in program.

E.g.

#define x 2

    

Whenever x occurs, it is replaced by the token string 2.


Example :


#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("\nArea=%.2f",area);
    return 0;
}

Output :

Enter the radius : 2
Area=12.57


Explanation :

The PI is a define directive and is replaced by its value in every occurrence.

Macro With Argument

#define can be used to write macro definitions with parameters.

Syntax :

#define identifier(identifier 1,.....identifier n) token_string

Token string: is optional but used in every case.

Example :


#include <stdio.h>
#define PI 3.1415
#define area(r) (PI*(r)*(r))
int main()
{
    int radius;
    float area;
    printf("Enter the radius : ");
    scanf("%d",&radius);

    area=area(radius);
    printf("\nArea=%.2f",area);
    return 0;
}

Output :

Enter the radius :
Area=12.57


Explanation :

Every time the program encounters area(radius), it will be replace by (3.1415*(r)*(r)).


Popular Posts