関数ポインタの簡単な使用例
確認用のミニマムなやつ
#include <stdio.h> int add(int a, int b); int sub(int a, int b); int (*p[2])(int x, int y) = { add, sub }; int main(void) { int a = 14, b = 23; int c, d; c = 0; //c = 1; d = (*p[c])(a, b); // c が 0 なら add, 1 なら sub が呼ばれる printf("%d\n", d); return 0; } int add(int a, int b) { return a + b; } int sub(int a, int b) { return a - b; }
実行例 (c = 0)
37
実行例 (c = 1)
-9
関数ポインタを使うと、いくつかの関数を分岐により選択するとき、
コードの冗長性を防げるときがある。