日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

使用typedef声明新类型及函数指针

發(fā)布時(shí)間:2025/3/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用typedef声明新类型及函数指针 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、使用typedef聲明新類型名

  C語(yǔ)言支持一種叫做typedef的機(jī)制,它允許你為各種數(shù)據(jù)類型定義新名字。typedef聲明的寫法和普通的聲明基本相同,只是吧typedef這個(gè)關(guān)鍵字出現(xiàn)在聲明的前面。例如,下面這個(gè)聲明:

char?*ptr_to_char;

把變量ptr_to_char聲明為一個(gè)指向字符的指針。但是,在你添加關(guān)鍵字typedef后,聲明變?yōu)?#xff1a;

typedef?char?*ptr_to_char;

這個(gè)聲明把標(biāo)識(shí)符ptr_to_char作為指向字符的指針類型的新名字。你可以像使用任何預(yù)定義名字一樣在下面的聲明中使用這個(gè)新名字。例如:

ptr_to_char?a;

  聲明a是一個(gè)指向字符的指針。

  使用typedef聲明類型可以減少使聲明變得又臭又長(zhǎng)的危險(xiǎn),尤其時(shí)那些復(fù)雜的聲明。而且,如果你以后覺(jué)得應(yīng)該修改程序所使用的一些數(shù)據(jù)的類型時(shí),修改一個(gè)typedef聲明比修改程序中與這種類型有關(guān)的所有變量(和函數(shù))的所有聲明要容易得多。

【提示】你應(yīng)該使用typedef而不是#define來(lái)創(chuàng)建新的類型名,因?yàn)楹笳邿o(wú)法正確的處理指針類型。例如:#define?d_ptr_to_char?char?*d_ptr_to_char?a,b; 正確地聲明了a,但是b卻被聲明為一個(gè)字符。在定義更為復(fù)雜的類型名字是,如函數(shù)指針或指向數(shù)組的指針,使用typedef更為合適。

摘自:《C和指針》(3.3 typedef)


二、使用typedef聲明函數(shù)指針

【形式】:typedef 返回類型(*新類型)(參數(shù)表)

typedef?char?(*PTRFUN)(int);? PTRFUN?pFun;? char?glFun(int?a){?return;}? void?main()? {?pFun?=?glFun;?(*pFun)(2);? }

  typedef的功能是定義新的類型。第一句就是定義了一種PTRFUN的類型,并定義這種類型為指向某種函數(shù)的指針,這種函數(shù)以一個(gè)int為參數(shù)并返回char類型。后面就可以像使用int,char一樣使用PTRFUN了。

【示例】

#include?<stdio.h> #include?<assert.h>typedef?int?(*FP_CALC)(int,int);//定義一個(gè)函數(shù)指針類型int?add(int?a,?int?b) {return?a?+?b; }int?sub(int?a,?int?b) {return?a?-?b; }int?mul(int?a,?int?b) {return?a?*?b; }int?div(int?a,?int?b) {return?b???a/b?:?-1; }//定義一個(gè)函數(shù),參數(shù)為op,返回一個(gè)指針,該指針類型為擁有兩個(gè)int參數(shù)、 //返回類型為int的函數(shù)指針。它的作用是根據(jù)操作符返回相應(yīng)函數(shù)的地址 FP_CALC?calc_func(char?op) {switch(?op?){case?'+':return?add;case?'-':return?sub;case?'*':return?mul;case?'/':return?div;default:return?NULL;}return?NULL; }//最終用戶直接調(diào)用的函數(shù),該函數(shù)接收兩個(gè)int整數(shù), //和一個(gè)算術(shù)運(yùn)算符,返回兩數(shù)的運(yùn)算結(jié)果 int?calc(int?a,?int?b,?char?op) {FP_CALC?fp?=?calc_func(op);if(fp)return?fp(a,b);elsereturn?-1; }void?main() {int?a?=?100,?b?=?20;printf("calc(%d,?%d,?%c)?=?%d\n",?a,?b,?'+',?calc(a,?b,?'+'));printf("calc(%d,?%d,?%c)?=?%d\n",?a,?b,?'-',?calc(a,?b,?'-'));???printf("calc(%d,?%d,?%c)?=?%d\n",?a,?b,?'*',?calc(a,?b,?'*'));???printf("calc(%d,?%d,?%c)?=?%d\n",?a,?b,?'/',?calc(a,?b,?'/'));? }


原文地址:http://blog.csdn.net/qll125596718/article/details/6891881


相關(guān)閱讀:如何設(shè)計(jì)一門語(yǔ)言(一)——什么是坑(a)


*** walker ***


轉(zhuǎn)載于:https://blog.51cto.com/walkerqt/1672870

總結(jié)

以上是生活随笔為你收集整理的使用typedef声明新类型及函数指针的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕成人网 | 97视频一区二区 | 欧美拍拍| 黄色网址在线看 | 成年人免费黄色片 | 日韩免费网站 | 亚洲国产成人va在线观看天堂 | 少妇太紧太爽又黄又硬又爽小说 | аⅴ资源新版在线天堂 | 亚洲日本精品一区 | 日日操夜夜骑 | av九九九 | 欧美黑吊大战白妞欧美大片 | 国产99久久久国产精品 | 色婷婷六月天 | 国产91精品久久久 | 你懂的国产在线 | 亚洲精选一区 | 在线观看不卡av | 欧美精品观看 | 悠悠av| 毛片黄片免费看 | 999热视频 | 日本护士做爰视频 | 美女操出白浆 | 美妇湿透娇羞紧窄迎合 | 三级特黄视频 | 欧美一区二区黄色 | 原创露脸88av | 中文字幕视频在线 | 日韩国产精品一区二区 | 狠狠插影院| 中文字幕精品在线视频 | 进去里视频在线观看 | 亚洲三级色 | 乱一色一乱一性一视频 | 日韩黄色一级片 | 一级黄色在线 | 国产精品丝袜黑色高跟 | 日韩欧美亚洲 | 国产视频一区二区三区四区 | 成年人在线视频免费观看 | 欧美婷婷精品激情 | 特级精品毛片免费观看 | 日韩精品久久久久久久电影99爱 | 亚洲男女在线观看 | 成人h视频 | 高清视频免费在线观看 | av日日操| 国产综合免费视频 | 精品人妻一区二区三区香蕉 | 操碰97| 91精选视频 | 日本免费一区二区三区四区五六区 | 国产精品a久久久久 | 农村老熟妇乱子伦视频 | 亚洲精品女人 | 国产高中女学生第一次 | 九一国产精品 | 日韩欧美一二三 | 欧洲视频一区二区三区 | xxxxwwww在线观看 | 色播综合网 | 国产不卡一区二区视频 | 日韩国产欧美在线观看 | 亚洲一区二区三区在线免费观看 | 亚洲一区电影 | 亚洲欧美日韩国产成人精品影院 | 日韩另类视频 | 欧美色性视频 | 亚洲国产日韩欧美 | 中文字幕精品一区二区精品 | 91美女精品 | 波多野结衣欧美 | 亚洲一区二区三区影院 | 国产美女作爱全过程免费视频 | 国产精品一区二区三区线羞羞网站 | 欧美亚洲综合在线 | 4438x亚洲最大 | 好男人视频www | 亚洲av日韩av不卡在线观看 | 公侵犯一区二区三区 | 粗大黑人巨茎大战欧美成人 | 天天舔天天摸 | 国产午夜毛片 | 国产专区视频 | 欧美老熟妇又粗又大 | 亚洲av鲁丝一区二区三区 | 四房婷婷| 国产毛片在线 | 国产亚洲欧美精品久久久www | 日韩欧美久久 | 欧美a v在线 | 欧美xxxx免费虐 | av毛片精品 | 中文字幕亚洲专区 | 奇米在线播放 | 午夜视频免费观看 | 少妇 av |