C言語でどのようにインターフェース機能を実装するか

C言語は手続き型言語で、インターフェース機能が内蔵されていません。しかし、関数ポインタや構造体、コールバック関数などのテクニックを使用して、同様のインターフェース機能を実現できます。

  1. ファンクションポインタ使用:ファンクションポインタの型を定義し、具体的な関数をファンクションポインタに代入し、ファンクションポインタを呼び出してインターフェースの機能を実現できます。
typedef void (*InterfaceFunc)();
InterfaceFunc interface;

void Func1() {
    printf("Func1\n");
}

void Func2() {
    printf("Func2\n");
}

int main() {
    interface = Func1;
    interface(); // 调用Func1

    interface = Func2;
    interface(); // 调用Func2

    return 0;
}
  1. 構造体とコールバック関数が使える:
typedef struct {
    void (*interfaceFunc)();
} Interface;

void Func1() {
    printf("Func1\n");
}

void Func2() {
    printf("Func2\n");
}

int main() {
    Interface interface1;
    interface1.interfaceFunc = Func1;
    interface1.interfaceFunc(); // 调用Func1

    Interface interface2;
    interface2.interfaceFunc = Func2;
    interface2.interfaceFunc(); // 调用Func2

    return 0;
}

こうすることで、関数ポインタや構造体、コールバック関数を用いて、インタフェースの機能を実現できます。

bannerAds