[問題] typedef對函數指標的用法
這是我在《透視C語言指標》這一書中看到的。
書中第76頁型別定義了一函數指標,其定義方法如下:
typedef int (*fptr)(int, int);
上面的式子可定義出fptr這個新的型別(為一參數為兩個整數,回傳值為整數
的函數指標。)
這個型別可用來宣告、傳入及傳回函數指標,其中傳入函數指標看起來就像
JavaScript中傳入函數的用法一樣,感覺蠻神奇的。(差別只在於C語言對型
別的要求還是比較強。)
請問,上面typedef的用法似乎和以前看過的用法不太一樣,可以想成是與函
數指標有關的特殊用法嗎?或是有其他更一般性的規範?
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.183.244
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1431866115.A.53E.html
※ 編輯: kilva (114.35.183.244), 05/17/2015 20:38:03
→
05/17 20:43, , 1F
05/17 20:43, 1F
→
05/17 20:45, , 2F
05/17 20:45, 2F
感謝回答,我上網查了一下後,發現我錯在哪裡了。
原本,我學的typedef用法為
typedef 資料型別 自訂名稱;
但這反而是最簡單時的特例,真正的用法為
typedef 宣告;
如宣告一字串陣列 char *name[];
加上typedef後就變成了 typedef char *name[];
此處的name就成了一個新的字串陣列型別。
同理可推,函數指標的宣告為 int (*fptr)(int, int);
加上typedef後就變成了typedef int (*fptr)(int, int);
此處的fptr就成了一個新的函數指標型別。
※ 編輯: kilva (114.35.183.244), 05/17/2015 21:17:11
→
05/17 21:18, , 3F
05/17 21:18, 3F
→
05/17 21:18, , 4F
05/17 21:18, 4F
→
05/17 22:00, , 5F
05/17 22:00, 5F
→
05/17 22:00, , 6F
05/17 22:00, 6F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章