說到類型別名,無非是給類型名(如int,char,float,double,bool)取一個比較有特殊含義的名字而已
最常用的關鍵莫過於 typedef 吧
typedef最常見的用法是與結構體struct連用,這是C語言的語法,C++已經不這樣用了(或者很少這樣用)。
在C語言中聲明結構體常用以下格式:
1 typedef struct Name1{ 2 elemtype ElemName; 3 }Name2,Name3;
其中Name1為結構體名,同時它還有兩個‘外號’:Name2,Name3。這是因為聲明結構體的時候使用了typedef,就會產生這樣的作用,為的就是給它取不同的外號,在聲明變量的時候,好憑借外號明白它的作用。比如下面這一段數據結構中常見的代碼:
typedef struct Node{ elemtype ElemName; }Linklist;
如果沒有用typedef,則用法就與C++一樣了。
struct Name1{ elemtype ElemName; };
只不過此時,如果在后面加上Name2,Name3,就不是給Name1取外號了,而是用聲明的結構體定義兩個變量Name2,Name3。這點是最大的區別。
除此之外,typedef,依舊用於‘取外號’,比如
1 typedef int zx;
上段代碼就是給int型的數據類型起一個外號叫zx,此時用zx和int具有相同的功能,temp A相當於int A;
C++11中增加了另外一個關鍵字來設置類型別名:using
比如上面的zx別名可用以下一行代碼實現
1 using zx=int;