Как создают интерфейсы в программах?

В языке программирования C нет встроенной поддержки интерфейсов, как, например, в языках Java или C#. Однако в C возможно эмулировать интерфейсы с помощью указателей на функции и структур данных.

Для создания интерфейса в программе на C можно использовать структуру, представляющую набор указателей на функции. Эти функции будут соответствовать методам интерфейса.

Пример:

typedef struct {
    void (*method1)(void);
    int (*method2)(int);
} Interface;

void implementation1(void) {
    printf("Executing implementation 1n");
}

int implementation2(int x) {
    return x * 2;
}

void useInterface(Interface *iface) {
    iface->method1();
    int result = iface->method2(5);
    printf("Result: %dn", result);
}

int main() {
    Interface iface = { implementation1, implementation2 };
    
    useInterface(&iface);
    
    return 0;
}

В данном примере Interface представляет собой структуру с указателями на функции method1 и method2. Функции implementation1 и implementation2 соответствуют реализации этих методов. Функция useInterface принимает указатель на объект типа Interface и вызывает его методы.

Хотя подход к созданию интерфейсов в C не такой удобный, как в некоторых других языках программирования, он все равно может быть использован для реализации полиморфизма и абстракции в программах на C.