Macro example
#define PERIMETER(x) (x + x + x + x)
int perimeter(int);
int main()
{
int size = 4, size1 = 4, answer, answer1;
answer = PERIMETER(size);
answer1 = perimeter(size1);
printf("\n1 - %d, %d function call - %d %d", size, answer, size1, answer1);
size = 4;
size1 = 4;
answer = PERIMETER(size + 1);
answer2 = perimeter(size1 + 1);
printf("\n2 - %d, %d function call - %d %d", size, answer, size1, answer1);
size = 4;
size1 = 4;
answer = PERIMETER(size++);
answer2 = perimeter(size1++);
printf("\n3 - %d, %d function call - %d %d", size, answer, size1, answer1);
size = 4;
size1= 4;
answer = PERIMETER(--size);
answer2 = perimeter(--size1);
printf("\n4 - %d, %d function call - %d %d", size, answer, size1, answer1);
size = 4;
size1 = 4;
answer = (--size) + (--size) + (--size) + (--size);
printf("\n5 - %d, %d", size, answer);
return (0);
}
int perimeter(int size)
{
return(size + size + size + size);
}
Output:
1 - 4, 16 function call - 4 16
2 - 4, 20 function call - 4 20
3 - 9, 16 function call - 5 16
4 - 0, 6 function call - 3 12
5 - 0, 6