Macro in C for computing the factorial of a number:
#include <stdio.h>
#define FACT(n) ((n <= 1) ? 1 : n * FACT(n-1))
int main() {
int n = 5;
int result = FACT(n);
printf("Factorial of %d is %d\n", n, result);
return 0;
}
Result:
Factorial of 5 is 120
Explanation:
In this example, the FACT macro with an argument n is defined that calls itself recursively to compute the factorial of n.
The ternary operator is used to check whether n is less than or equal to 1. If so, it returns 1, which is the base case of the recursive algorithm. If n is greater than 1, the macro multiplies n by the result of FACTORIAL(n-1), which computes the factorial of n-1.