c言語 関数ポインタ

 C言語では、関数ポインタは関数のアドレスを格納する変数です。これにより、プログラムは関数を間接的に呼び出すことができます。関数ポインターは、コールバック関数の実装、動的ディスパッチの実装、ポリモーフィズムのメカニズムの提供など、さまざまな方法で使用できます。
 この例では、2 つの整数を取り、整数を返す関数”add”を指す関数ポインタを宣言します。次に、関数”add”のアドレスをポインターに割り当てます。関数ポインタに2 つの整数を引数として渡すことにより、ポインターを介して関数”add”を間接的に呼び出します。

サンプル
fpointer_sample1.c

#include <stdio.h>

// 2 つの整数を引数として、その合計を返す関数
int add(int a, int b) {
    return a + b;
}

int main() {
    // 関数ポインタの宣言
    int (*func_ptr)(int, int);
    
    // 「add」関数のアドレスをポインタ変数に代入
    func_ptr = &add;
    
    // ポインタを介して関数を間接的に呼び出す
    int result = (*func_ptr)(2, 3);
    
    printf("The result is %d\n", result);
    
    return 0;
}

実行結果

end