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