int add(int x, int y){return x+y;}
と関数定義する。
関数ポインタは、void (*f)() で戻り値の
ない関数ポインタfを宣言する。
これに add を代入するにはキャストで
f = (void (*)())add;
とする。
「これ、分かりにくくない。」
キャストの型は
void (*f)() の f を除いて括弧でくくったのよ。
f を使って足し算はこんなふう
int x = (*(int(*)())f))(10, 20);
いやらしいでしょ!!
難しい!難しい!