typedef基本數據類型
typedef int a;
a abc;
后面的a abc
就等價于int abc
typedef結構體
typedef
struct a {int a;int b;
}
abc;abc aaa;
對于上述,abc aaa;
就等價于struct a aaa;
簡而言之,typedef的本質,就是構建等價關系。
第一個例子,讓a
和int
等價;
第二個例子,讓abc
和struct a { int a; int b; };
等價;
這樣一來,簡化書寫。
不過也有特別的例子,就是使用數組的時候。
typedef數組
typedef int a[5];
a aa;
這里a aa
等價于int aa[5]
,這里aa的本質,是具有5個元素的int類型數組。
也就是說,typedef int a[5];
,使得a
與int[5]
等價,當然C語言沒有這樣的寫法,希望能夠理解,a
就是代表具有5個int類型元素的數組。
typedef struct desc_struct
{ unsigned long a, b;
}
desc_table[256];desc_table idt, gdt;
這里idt
就是struct desc_struct idt[256]
,gdt
同理。