Định nghĩa kiểu
Typedef là cú pháp để mở đầu cho các tên tượng trưng cho các kiểu dữ liệu. Như là một tham chiếu định nghĩa một biệt danh cho một đối tượng, một typedef định nghĩa một biệt danh cho một kiểu. Mục đích cơ bản của nó là đế đơn giản hóa các khai báo kiểu phức tạp khác như một sự trợ giúp để cải thiện khả năng đọc. Ớ đây là một vài ví dụ:
typedef char *String;
typedef charName[12];
typedef unsigned int uint;
Tác dụng của các định nghĩa này là String trở thành một biệt danh cho char*, Name trở thành một biệt danh cho một máng gồm 12 char, và uint trở thành một biệt danh cho unsigned int. Vì thế:
String str; // thì tuong tự như; cha' *str;
Name name; // thì tuung tự như: char name[ 12];
uint n; // thì tuong tự như; unsigned int n;
Khai báo phức tạp của Compare trong Danh sách 5.8 là một minh họa tốt cho typedef:
typedef int (*CompareX const char*, const char*);
int BinSearch (char *item, char *tableQ, int n, Compare comp)
{
//...
if ((cmp= comp(item, table[mid]))= 0 )
return mid;
//...
}
typedef mở đầu Compare như là một tên kiếu mới cho bất kỳ hàm với nguyên mẫu (prototype) cho trước. Người ta cho ràng điều này làm cho dấu hiệu của BinScarch đơn giản hơn