関数ポインタって言葉は聞いたことあったけど,実体はなんぞ?ってことでちょいと調べてやってみた.
#include<stdio.h> int add(int a, int b){ return a + b; } int sub(int a, int b){ return a - b; } int mul(int a, int b){ return a * b; } int div(int a, int b){ return a / b; } int main(int argc, char* argv[]){ int a = 8; int b = 4; int i; int (*fp[])(int a, int b) = { add, sub, mul, div }; for(i = 0; i < 5; i++) printf("%d \n", (*fp[i])(a, b)); }
こんな感じのコードを書けば,いい感じに実行してくれます.
> gcc -o tryPFunc tryPFunc.c > ./tryPFunc 12 4 32 2
なんとなく使い方もわかったけど,使いこなすにはちゃんと設計しないといけないなー,みたいに思いましたとさ.