最基本的 pointer to function 定義:
void (*pf)(void); // 無傳入傳回值 int (*pf)(int); // 傳入傳回 int
如果我們有一個 function 是 int f() 我們可以定義:
pf = &f;
如果 function 有傳入值 (以 int 為例):
int f(int); int (*pf) (int) = &f;
呼叫的方式可以為:
pf(); (*pf)();
用陣列來存:
void (*fparr[])(int, float) = { /* initializers */ }; /* then call one */ fparr[5](1, 3.4);
使用結構:
typedef int foo(int); typedef struct myfunc { int id; // int (*pf)(int); foo *pf; } MYFUNC;
沒有留言:
張貼留言