typedef 作用是為一種資料類型定義一個新名字。這裡的資料類型包括內部數據類型(int,char等)和自定義的資料類型(struct等)。最簡單的一種用法就是用來替型別取另一個名字。它的語法如下
這樣作的目的,主要是為了讓程式容易思考與閱讀。如果只是單純的一個取代,似乎還看不出來,但如果較複雜的結構就很明顯了。
typedef struct { // 訂義位置 thePoint,其表示方法為 x,y 兩個浮點數來指示座標
float x;
float y;
}thePoint;
typedef struct { // 訂義大小 theSize,其表示方法為 width,height 兩個浮點數
float width;
float height;
} theSize;
typedef struct { // 訂義大小 theRect, 內有起點座標位置 origin(thePoint類型) 與大小 size(theSize類型)
thePoint origin;
theSize size;
} theRect;
定義好型別之後,我們就可以建立一個型別,然後對它做設定,如
theRect myRect;
myRect.origin.x = 0; // myRect 的起始位置 y 座標為 0
myRect.origin.y = 0; // myRect 的起始位置 y 座標為 0
myRect.size.width = 50; // myRect 的大小,寬為 50
myRect.size.height = 60; // myRect 的大小,高為 60
NSLog(@"x:%.1f y:%.1f width:%.1f height:%.1f",myRect.origin.x,myRect.origin.y,myRect.size.width,myRect.size.height);
輸出:x:0.0 y:0.0 width:50.0 height:60.0
這樣子用 myRect.size.width 讀起來就像是 距形 . 大小 . 寬度 是不是很好閱讀呢?
在 iOS 程式設計中,有非常大量的使用自訂的型別訂義,像是 UIColor, CGPoint,CGSize 等資料型別,多半是這種概念建立的。
留言列表