Code
c
#include <stdio.h>
// Object-like macro
#define PI 3.14159265358979
#define MAX_BUF 256
// Function-like macro
#define SQUARE(x) ((x) * (x))
#define MAX(a, b) ((a) > (b) ? (a) : (b))
// Conditional compilation
#ifdef DEBUG
#define LOG(msg) printf("[DEBUG] %s\n", msg)
#else
#define LOG(msg) ((void)0)
#endif
// Variadic macro
#define PRINT(fmt, ...) printf(fmt __VA_OPT__(,) __VA_ARGS__)
int main(void) {
double area = PI * SQUARE(5);
printf("area = %.2f\n", area);
printf("max = %d\n", MAX(3, 8));
LOG("running");
PRINT("count=%d name=%s\n", 7, "x");
return 0;
}