定義類型別名(typedef,using)


說到類型別名,無非是給類型名(如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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM