最基本的 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;
沒有留言:
張貼留言