程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言中一些容易被人忽略的東西 之二 [typedef 與函數的姻緣]

C語言中一些容易被人忽略的東西 之二 [typedef 與函數的姻緣]

編輯:關於C語言

  且不說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(顯式取地址)效果其實是一樣的,可以自行編程驗證下

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved