且不說typedef有多常見,最多的莫過於 typedef struct了。那麼強大的類型定義符typedef也是可以用來定義函數的,您可知道? 有如下准確的代碼可以說明問題: typedef int (*MYFunc)(int x,int y);//MYFunc 即 int * Function(int x, int y) 類型指針的新名稱 如果顯得太過於復雜,那麼,我們暫且拋去形參列表, 即 : typedef int (*MYFunc)那麼MYFunc實際上就是int型指針了 接上參數列表,我們繼續: int add(int x ,int y); MYFunc pMYFunc; pMYFunc = add; pMYFunc(5,6);//該處得到了我們想要的結果 很難理解對不對? 沒關系,可以用這樣一個不完全對的方法來稍微推下: 要理解的是pMYFunc = add;這句 我們先:MYFunc = add;//對不對? 再:*MYFunc=*add; 最終:int=*add//是不是那麼有點意思? 如果我們這樣:pMYFunc=&add;//這其實也是行得通的,事實上這才是原句 因為p=fun;(隱式取地址)和p=&fun(顯式取地址)效果其實是一樣的,可以自行編程驗證下