Open In App

#define in C

Last Updated : 14 Jul, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

In C programming, #define is a preprocessor directive that is used to define macros. The macros are the identifiers defined by #define which are replaced by their value before compilation. We can define constants and functions like macros using #define. The generics in C are also implemented using the #define preprocessor directive along with _Generic.

Syntax of C #define

The syntax of #define preprocessor directive in C is:

For Defining Constants

#define MACRO_NAME value

For Defining Expressions

#define MACRO_NAME (expression within brackets)

For Defining Expression with Parameters

Arguments passed in the macros can be used in the expression.

#define MACRO_NAME(ARG1, ARG2,..) (expression within brackets)

There are a few more ways using which we can define macros. To know more, refer to this article – Macros and its types in C

Examples of C #define

Example 1:

In the below example, we have defined a macro ‘PI’ and assigned it a constant value which we can use later in the program to calculate the area of a circle.

C




// C Program to illustrate how to use #define to declare
// constants
#include <stdio.h>
  
// Defining macros with constant value
#define PI 3.14159265359
  
int main()
{
  
    int radius = 21;
    int area;
  
    // Using macros to calculate area of circle
    area = PI * radius * radius;
  
    printf("Area of Circle of radius %d: %d", radius, area);
  
    return 0;
}


Output

Area of Circle of radius 21: 1385

Example 2:

In the below example, we have defined a macro ‘PI’ and assigned it an expression, and that value of the expression is used in the program using ‘PI’.

C




// C Program to illustrate the defining of expression using
// #define
#include <stdio.h>
  
// Defining macros with expression
#define PI (22 / 7)
  
int main()
{
  
    int radius = 7;
    int area;
  
    // Using macros to calculate area of circle
    area = PI * radius * radius;
  
    printf("Area of Circle of radius %d: %d", radius, area);
  
    return 0;
}


Output

Area of Circle of radius 7: 147

Example 3:

In the below example, we have defined two macros CIRCLE_AREA and SQUARE_AREA with a parameter and that parameter is used in the expression to calculate the area of circle and square respectively.

C




// C Program to define the function like macros using
// #define
#include <stdio.h>
  
// Defining parameterized macros with expression
#define CIRCLE_AREA(r) (3.14 * r * r)
#define SQUARE_AREA(s) (s * s)
  
int main()
{
  
    int radius = 21;
    int side = 5;
    int area;
  
    // Using macros to calculate areas by
    // passing argument
    area = CIRCLE_AREA(radius);
    printf("Area of Circle of radius %d: %d \n", radius,
           area);
  
    area = SQUARE_AREA(side);
    printf("Area of square of side %d: %d", side, area);
  
    return 0;
}


Output

Area of Circle of radius 21: 1384 
Area of square of side 5: 25

Important Points

  • Macros declared using #define are used to store constants and cannot be changed. we cannot assign variables to the macros.
  • We cannot use the ‘=’ operator to assign value to the macros (eg. #define PI 3.14).
  • We do not use the semicolon ‘;’ at the end of the statement in #define.


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads