關鍵字 (keyword) typedef 用來定義型態 (type) 的同義字,也就是別名,例如
001 | #include <iostream> |
002 | |
003 | int main() { |
004 | typedef int INTEGER; |
005 | INTEGER a = 22; |
006 | std::cout << "a: " |
007 | << a |
008 | << std::endl; |
009 | |
010 | return 0; |
011 | } |
012 | |
013 | /* Kaiching Chang |
014 | u1303_1.cpp |
015 | 2014-02 */ |
第 4 行定義 INTEGER 為 int 的同義字
004 | typedef int INTEGER; |
因此可以用 INTEGER 來宣告變數 (variable)
005 | INTEGER a = 22; |
編譯執行,結果如下
$ g++ u1303_1.cpp |
$ ./a.out |
a: 22 |
$ |
typedef 通常用在自行定義的型態名稱,除了可以隱藏實作細節,當自行定義的名稱又長又瑣碎的時候,就可以簡化整個名稱,例如
001 | #include <iostream> |
002 | |
003 | struct SomethingWillHappened { |
004 | int a; |
005 | }; |
006 | |
007 | typedef SomethingWillHappened SHDemo; |
008 | |
009 | int main() { |
010 | SHDemo d; |
011 | d.a = 22; |
012 | |
013 | std::cout << "d.a: " |
014 | << d.a |
015 | << std::endl; |
016 | |
017 | return 0; |
018 | } |
019 | |
020 | /* Kaiching Chang |
021 | u1303_2.cpp |
022 | 2014-02 */ |
這裡將 SomethingWillHappened 簡化為 SHDemo
007 | typedef SomethingWillHappened SHDemo; |
編譯執行,結果如下
$ g++ u1303_2.cpp |
$ ./a.out |
d.a: 22 |
$ |
continue ...
沒有留言:
張貼留言