星期四, 7月 02, 2009

C 語言 pointer to function 筆記

C 語言 Pointer to function 筆記

最基本的 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;

沒有留言: