c struct pointer to function

#include <stdio.h>

struct MathOperations {
    int (*add)(int, int);
    int (*subtract)(int, int);
};

int add(int a, int b) {
    return a + b;
}

int subtract(int a, int b) {
    return a - b;
}

int main() {
    struct MathOperations mathOps;
    mathOps.add = &add;
    mathOps.subtract = &subtract;

    int result1 = mathOps.add(10, 5);
    int result2 = mathOps.subtract(10, 5);

    printf("Addition result: %d\n", result1);
    printf("Subtraction result: %d\n", result2);

    return 0;
}