В языке программирования 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.