怎麼樣很好的理解typedef

2021-06-17 20:18:10 字數 605 閱讀 3472

以前在教材或者部落格中,總能看到類似這樣的介紹,「typedef定義的不是乙個新型別,而是乙個型別的別名,比如typedef int size,這裡的size就是int的別名」,這樣的介紹對錯先不管,但一定是會給人誤導的;如很多人看了這句話就無法理解下面兩個定義了,typedef int a[100],typedef void (*p)(int, int),按之前的介紹的思路,a[100]應該是int的別名,(*p)(int, int)應該是void的別名,這顯然是錯誤的。

以前我對此也十分困惑,後來終於找到了理解的方法,下面我以一問一答的方式來說明把。

問:int a[100];的宣告中,a是什麼?

答:a是長度為100的int型陣列。

問:int b;中的b是什麼?

答:b是int型整數。

問:void p(int, int);中的p是什麼?

答:函式。

看了以上問答,我覺得我們可以這樣理解,乙個typedef定義,先遮住typedef,把typedef後面所有內容看成乙個整體表示式,這樣我們就可以看出該表示式宣告了什麼型別的變數或指標,那麼現在把typedef加上,typedef就是告訴你,hei,沒錯,我定義的就是你剛剛用手遮住後的表示式宣告的變數或指標的型別。

立方網怎麼樣

立方網號稱自己是中國第一家lbs 也有傳言facebook的時間軸就是抄襲的立方網。照理說,這樣的公司應該朝氣蓬勃 勇於創新的企業。但是就在最近,白雲黃鶴一名學子爆出在立方網的種種不爽,不管真實性怎麼樣,對即將找工作的同學也是一種參考,文章如下 11年畢業,畢業後去了廣州的一家國企裡面,待了大半年的...

怎麼樣定義常量

一 怎麼定義常量?1.自定義常量 必須用函式define 定義 定義完後其值不能再改變了 使用時直接用常量名,不能像變數一樣在前面加 s 2 系統常量 file php程式檔名 line php程式檔案行數 php version 當前解析器的版本號 php os 執行當前php版本的作業系統名稱 ...

Geotrust SSL證書怎麼樣

geotrust ssl證書主要有4種,其中 2種為只驗證網域名稱所有權而不驗證營業執照的快速dv ssl證書 quickssl premium 入門型rapidssl 只有一款需要驗證營業執照的證書ov ssl證書 true business id 還有一款就是新推出的ev ssl證書 true ...