国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言typedef與復雜函數聲明問題的深入解析

2020-01-26 15:57:24
字體:
來源:轉載
供稿:網友

下面是三個變量的聲明,我想使用typedef分別給它們定義一個別名,請問該如何做?
>1:int *(*a[5])(int, char*);
>2:void (*b[10]) (void (*)());
>3. doube(*)() (*pa)[9];

答案與分析:
對復雜變量建立一個類型別名的方法很簡單,你只要在傳統的變量聲明表達式里用類型名替代變量名,然后把關鍵字typedef加在該語句的開頭就行了。

>1:int *(*a[5])(int, char*);
//pFun是我們建的一個類型別名
typedef int *(*pFun)(int, char*);
//使用定義的新類型來聲明對象,等價于int* (*a[5])(int, char*);
pFun a[5];
a是一個包含5個元素的數組,數組的元素是函數指針,該函數指針所指函數的的返回值是指向int類型的指針,輸入參數有兩個,第一個是int,第二個是char*

>2:void (*b[10]) (void (*)());
//首先為上面表達式紅色部分聲明一個新類型
typedef void (*pFunParam)();
//整體聲明一個新類型
typedef void (*pFun)(pFunParam);
//使用定義的新類型來聲明對象,等價于void (*b[10]) (void (*)());
pFun b[10];
b是一個含有10個元素的數組,每個元素都是一個函數指針,該函數指針所指的函數的返回值為void,輸入參數為另一個函數指針,這個函數指針沒有輸入參數,返回值為void

>3. doube(*)() (*pa)[9];
//首先為上面表達式紅色部分聲明一個新類型
typedef double(*pFun)();
//整體聲明一個新類型
typedef pFun (*pFunParam)[9];
//使用定義的新類型來聲明對象,等價于doube(*)() (*pa)[9];
pFunParam pa;

pa是個指針,指針指向一個含有9個元素的數組,數組的元素是一個函數指針,函數指針所指函數沒有輸入參數,返回值為double

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 巴东县| 缙云县| 阿坝| 阿克苏市| 南康市| 新巴尔虎左旗| 武功县| 白朗县| 金溪县| 大荔县| 甘谷县| 娱乐| 平泉县| 宁远县| 璧山县| 时尚| 苍溪县| 墨江| 积石山| 铜陵市| 通化市| 阿克陶县| 黑水县| 赣榆县| 富平县| 凌海市| 蒙自县| 和龙市| 都兰县| 淮安市| 郧西县| 九龙县| 象州县| 平山县| 嵊州市| 乌恰县| 诸城市| 江陵县| 横山县| 海伦市| 会同县|