Home » C Program for Arithmetic Expressions using Macros

# C Program for Arithmetic Expressions using Macros

C macros are preprocessor directives like #define that is directly replaced into a source code in a C program. This replacement mechanism is called macro expansion.

In this example program, we will use a #define directive to do arithmetic operations.

Learn about C macro expansion before you begin with the example.

## Problem Definition

As we mentioned earlier, #define directive is used to do macro expansion. In this program, we will write four function like macros that take two arguments and perform the arithmetic operations similar to a calculator.

For example, if X and Y are two arguments then

``````#define ADD(X, Y) ( X + Y)
#define SUBTRACT( X, Y) ( X - Y)
#define MULTIPLY(X, Y) (X * Y)
#define DIVIDE(X, Y) (X/Y)``````

Any variable that replaces X and Y will be used for arithmetic operations directly within the macros. Each opeation is separate and does not affect each other unless any expression changes the value of X or Y or both.

The source code of the program is given in the next section.

## Program Source Code

``````#include <stdio.h>
#include <stdlib.h>

#define ADD(X, Y) ( X + Y)
#define SUBTRACT(X, Y) (X - Y)
#define MULTIPLY(X, Y) (X * Y)
#define DIVIDE(X, Y) (X/Y)

int main()
{
int a,b; /* variable declaration and initialization */

addition = subtraction = mul = division = 0;

printf("Enter two numbers:\n");
scanf("%d",&a);
scanf("%d",&b);

/* Compute */

subtraction = SUBTRACT(a, b);
mul = MULTIPLY(a, b);
division = DIVIDE(a, b);

/* printing outputs */

printf("\n");
printf("_________________________\n");
printf("Subtraction = %d\n",subtraction);
printf("Multiplication = %d\n",mul);
printf("Division = %d\n",division);

getch();
system("PAUSE");
return 0;
}``````

## Output

When the program executes, it asks for two input numbers – X and Y values. Once you enter the numbers, the preprocessor replaces the macros with actual codes and inputs are used to compute results.

The following screenshot shows the result obtained for inputs: X = 32 and Y = 2.

``````___________________________________
Enter two numbers:
34 2
___________________________________
Subtraction = 32
Multiplication = 68
Division = 17``````

### Related Articles: 