typedef

  • 用法一:可以減少代碼的書寫量

struct student{

int data;

char name[10];

};
當我們定義學生結構體的時候要這么定義struct student s1,s2,s3; 如果想定義結構體指針,我們可以這么定義,struct student *ps1, ps2; 顯然ps2不是指針類型,但是好多初學者對指針不熟悉驹碍,所以容易出錯,但是當我們用typedef的時候心例,就不會出現(xiàn)這樣的錯誤了颤陶,

typedef struct student{

int data;

char name[10];

}stu, *pstu;
我們定義的時候可以這么定義stu s1, s2, s3; 定義結構體指針的時候,可以這么定義,pstu ps1, ps2; 這樣ps1迄埃, ps2都是指針類型的變量 這是typedef的用法之一妄迁,也是比較常用的寝蹈。

  • 用法二:可以實現(xiàn)代碼的復用性和可擴展性

如果一段代碼沒有擴展性和復用性,那么這段代碼就不能算得上是一段特別規(guī)范的代碼判族,就像我們?yōu)榱藢崿F(xiàn)代碼的復用性躺盛,提高程序可讀性的時候,用函數(shù)一樣形帮,提高代碼的復用性和可擴展性是作為軟件開發(fā)者必備的本領槽惫。一段好的代碼,如果在別的項目中引用的話辩撑,如果功能類似界斜,基本上改不了幾行,這就是規(guī)范性的重要性(這里先不談規(guī)范性合冀,但是這個typedef的用法也涉及規(guī)范性各薇,嘿嘿,所以規(guī)范是避免不了的)君躺。就這么來說吧峭判,假如我們定義了一個結構體

struct student{

int score;

char name[10];

};我們想把成績改成double類型的,應為int的精度太低了棕叫,但是下面用到的地方可能都要改掉林螃,但是,我們要是用typedef一下俺泣, 問題就變得簡單多了疗认,

typedef int typeitem;

struct student{

typeitem score;

char name[10];

};這樣直接改typedef就行了伏钠,其他的代碼根本不用動横漏,這就是分層的原因,我們只改變最底層的熟掂,上層的東西根本不用變(就像在鏈表中缎浇,我們可以把它分為三層,純數(shù)據(jù)層赴肚、節(jié)點層华畏、head指針層鹏秋,也就是整條鏈)這樣分層處理問題會變得簡單得多尊蚁。還有就是平臺不同可以兼容亡笑,就像有的平臺不支持long double類型,但是你如果定義了long double 直接不能用横朋,但是如果這么 typedef long double typeitem仑乌; 直接改成可以支持的類型就行啦,根本不用那么麻煩改下面的代碼琴锭,這也是比較重要的用途晰甚。

  • 用途三:簡化,提高可讀性

想必大家覺得决帖,這個用途不是包含在上面的用途之中了嗎厕九,為什么還要再說一遍呢,其實我舉個例子你也就明白了地回,typedef int array[10]扁远,這個代表什么意思,這可不是平時那種array[10】是個int了吧刻像,這個代表畅买,array是個重定義的類型,array a细睡; 就代表a是一個含有10個int型元素的數(shù)組谷羞,這么定義可能覺得簡化不了多少,還不如直接int a[10];看著明白呢溜徙,好! 繼續(xù)往下看,typedef array Array[5]; 這個呢湃缎,如果我這么定義一個變量 Array arr[2]; 這個又是什么意思呢?這個就是定義個Array類型數(shù)組蠢壹,其中這個“一維”數(shù)組有兩個元素嗓违,但是每個元素又都是Array 類型的,每個Array又是一個5行10列二維數(shù)組知残,所以arr就是一個三維數(shù)組靠瞎,他就等于int arr[2][5][10]; 是不是看的有點蒙了, 其實在C語言中根本不存在多維數(shù)組求妹,全部都是一維數(shù)組乏盐,只是一維數(shù)組里面又含一維數(shù)組,所以才構成了所謂的“多維”數(shù)組制恍, 如果這樣理解的話父能,是不是覺得多維數(shù)組也就不那么“神奇”了,變得簡單了净神,沒有那么暈了何吝,這樣定義的好處就是可以講一個多維的數(shù)組轉化成我們比較熟悉的一維數(shù)組溉委,這樣操作起來就比較容易了,可讀性自然也會增強爱榕。所以這就是他的“簡化”的作用瓣喊。其實我們還可以在函數(shù)指針上體現(xiàn),想定義個函數(shù)指針int (p)(); 我們可以定義為typedef int (POWER)(); 接下來可以直接定義POWER p1, p2; 他就等價于int (p1)(), int (p2)(); 這樣也非常易懂黔酥。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末藻三,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子跪者,更是在濱河造成了極大的恐慌棵帽,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,496評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渣玲,死亡現(xiàn)場離奇詭異逗概,居然都是意外死亡,警方通過查閱死者的電腦和手機忘衍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,187評論 3 385
  • 文/潘曉璐 我一進店門逾苫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人淑履,你說我怎么就攤上這事隶垮。” “怎么了秘噪?”我有些...
    開封第一講書人閱讀 157,091評論 0 348
  • 文/不壞的土叔 我叫張陵狸吞,是天一觀的道長。 經(jīng)常有香客問我指煎,道長蹋偏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,458評論 1 283
  • 正文 為了忘掉前任至壤,我火速辦了婚禮威始,結果婚禮上,老公的妹妹穿的比我還像新娘像街。我一直安慰自己黎棠,他們只是感情好,可當我...
    茶點故事閱讀 65,542評論 6 385
  • 文/花漫 我一把揭開白布镰绎。 她就那樣靜靜地躺著脓斩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪畴栖。 梳的紋絲不亂的頭發(fā)上随静,一...
    開封第一講書人閱讀 49,802評論 1 290
  • 那天,我揣著相機與錄音,去河邊找鬼燎猛。 笑死恋捆,一個胖子當著我的面吹牛,可吹牛的內容都是我干的重绷。 我是一名探鬼主播沸停,決...
    沈念sama閱讀 38,945評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼论寨!你這毒婦竟也來了星立?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,709評論 0 266
  • 序言:老撾萬榮一對情侶失蹤葬凳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后室奏,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體火焰,經(jīng)...
    沈念sama閱讀 44,158評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,502評論 2 327
  • 正文 我和宋清朗相戀三年胧沫,在試婚紗的時候發(fā)現(xiàn)自己被綠了昌简。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,637評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡绒怨,死狀恐怖纯赎,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情南蹂,我是刑警寧澤犬金,帶...
    沈念sama閱讀 34,300評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站六剥,受9級特大地震影響晚顷,放射性物質發(fā)生泄漏。R本人自食惡果不足惜疗疟,卻給世界環(huán)境...
    茶點故事閱讀 39,911評論 3 313
  • 文/蒙蒙 一该默、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧策彤,春花似錦栓袖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,744評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至必搞,卻和暖如春必指,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背恕洲。 一陣腳步聲響...
    開封第一講書人閱讀 31,982評論 1 266
  • 我被黑心中介騙來泰國打工塔橡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留梅割,地道東北人。 一個月前我還...
    沈念sama閱讀 46,344評論 2 360
  • 正文 我出身青樓葛家,卻偏偏與公主長得像户辞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子癞谒,可洞房花燭夜當晚...
    茶點故事閱讀 43,500評論 2 348

推薦閱讀更多精彩內容

  • typedef的用法總結轉載 2015年02月28日 13:40:16 標簽:c++ 373第一底燎、四個用途 用途一...
    toobai閱讀 568評論 0 0
  • typedef用來聲明一個別名,typedef后面的語法弹砚,是一個聲明双仍。本來以為這里不會產(chǎn)生什么誤解的,但結果卻出乎...
    Mr_Me閱讀 831評論 0 4
  • typedef是類型定義的意思桌吃。typedef struct 是為了使用這個結構體方便朱沃。 具體區(qū)別在于: 若str...
    smile刺客閱讀 8,423評論 1 2
  • 一、基本定義 typedef為C語言的關鍵字茅诱,作用是為一種數(shù)據(jù)類型定義一個新名字逗物。這里的數(shù)據(jù)類型包括內部數(shù)據(jù)類型(...
    Cheriez閱讀 2,245評論 0 1