首先介紹大家比較熟悉的typedef
- int i;//定義一個整型變量i
- typedef myInt int;
- myInt j;//定義一個整型變量j
上面介紹得是我們常用的比較簡單的typedef的用法,下面首先介紹一下函數指針。
函數指針的形式:
形式1:返回類型(*函數名)(參數表)
- #include <iostream>
- using namespace std;
- //定義一個函數指針pFUN,它指向一個返回類型爲char,有一個整型的參數的函數
- char (*pFun)(int);
- //定義一個返回類型爲char,參數爲int的函數
- //從指針層面上理解該函數,即函數的函數名實際上是一個指針,
- //該指針指向函數在內存中的首地址
- char glFun(int a)
- {
- cout << a;
- //return a;
- }
- int main()
- {
- //將函數glFun的地址賦值給變量pFun
- pFun = glFun;
- //*pFun”顯然是取pFun所指向地址的內容,當然也就是取出了函數glFun()的內容,然後給定參數爲2。
- (*pFun)(2);
- return 0;
- }
通過上面的一個小例子,我們知道了函數指針的用法,
而typedef可以讓函數指針更直觀方便
形式2:typedef 返回類型(*新類型)(參數表)
- typedef char (*PTRFUN)(int);
- PTRFUN pFun;
- char glFun(int a){ return;}
- void main()
- {
- pFun = glFun;
- (*pFun)(2);
- } </span>
第二行的代碼便使用這個新類型定義了變量pFun,此時就可以像使用形式1一樣使用這個變量了。