iOS開發學習之關鍵字Typedef的用法詳解

用法一 atom

使用Typedef定義一種類型的別名,而不僅是簡單的宏替換。能夠用做同時聲明指針型的多個對象。好比: spa

    char* pa, pb; // 這多數不符合咱們的意圖,它只聲明瞭一個指向字符變量的指針,和一個字符變量; 指針

// 如下則可行: 對象

typedef char* PCHAR; get

PCHAR pa, pb; 源碼

 這種用法頗有用,特別是char* pa, pb的定義,初學者每每認爲是定義了兩個字符型指針,其實不是,而用typedef char* PCHAR就不會出現這樣的問題,減小了錯誤的發生。 變量

 用法二 float

 typedef來定義與平臺無關的類型。好比定義一個叫 REAL 的浮點類型,在目標平臺上,讓它表示最高精度的類型爲: 跨平臺

 typedef long double REAL; co

 在不支持 long double 的平臺二上,改成:

 typedef double REAL;

 在連 double 都不支持的平臺三上,改成:

 typedef float REAL;

     也就是說,當跨平臺時,只要改下 typedef 自己就行,不用對其餘源碼作任何修改。

用法三

 能夠使用typedef定義一個Block的類型,便於在後續直接使用,如:

eg:typedef double(^MyBlock)(double, double);   定義MyBlock的類型

MyBlock area = ^(double x, double y) {

    return x * y;

};

MyBlock sum = ^(double a, double b) {

    return a + b;

};

NSLog(@"%.2f", area(10.0, 20.0));

NSLog(@"%.2f", sum(10.0, 20.0));//上面是使用


eg:typedef void(^myBlock)(int a, int b);//定義myBlock類型

@property(strong,  nonatomic) myBlock b_myblock;//聲明myBlock一個變量

- (void)getTwoNumber:(myBlock)b_myblock;

參考:http://q.maiziedu.com/article/11421/

相關文章
相關標籤/搜索