Ngôn ngữ lập trình C cung cấp một từ khóa được gọi là typedef, bạn có thể sử dụng để cung cấp kiểu cho một loại tên mới.
Phần dưới đây là ví dụ để xác định cụm từ BYTE cho số một byte:
typedef unsigned char BYTE;
Sau định nghĩa này, định danh BYTE có thể được sử dụng như một từ viết tắt cho loại unsigned char, ví dụ:
BYTE b1, b2;
Theo quy ước, chữ hoa được sử dụng cho các định nghĩa để nhắc nhở người dùng rằng tên thực sự là một từ viết tắt tượng trưng, nhưng bạn có thể sử dụng chữ thường, như sau:
typedef unsigned char byte;
Bạn có thể sử dụng typedef để đặt tên cho kiểu dữ liệu do người dùng xác định. Ví dụ, bạn có thể sử dụng typedef với cấu trúc để định nghĩa một kiểu dữ liệu mới và sau đó sử dụng kiểu dữ liệu đó để định nghĩa các biến cấu trúc trực tiếp như sau:
#include
#include
typedef struct Books {
char title[50];
char author[50];
char subject[100];
int book_id;
} Book;
int main( ) {
Book book;
strcpy( book.title, "C Programming");
strcpy( book.author, "Nuha Ali");
strcpy( book.subject, "C Programming Tutorial");
book.book_id = 6495407;
printf( "Book title : %s\n", book.title);
printf( "Book author : %s\n", book.author);
printf( "Book subject : %s\n", book.subject);
printf( "Book book_id : %d\n", book.book_id);
return 0;
}
Khi mã trên được biên dịch và thực hiện, nó tạo ra kết quả sau:
Book title : C Programming
Book author : Nuha Ali
Book subject : C Programming Tutorial
Book book_id : 6495407
#define là chỉ thị C cũng được sử dụng để xác định bí danh cho các loại dữ liệu khác nhau tương tự typedef nhưng với những khác biệt sau đây:
Typedef được giới hạn chỉ cho các tên biểu tượng cho các loại chỉ khi #define có thể được sử dụng để xác định bí danh cho các giá trị là tốt, q., bạn có thể định nghĩa 1 là ONE,...
Typedef được thực hiện bởi trình biên dịch trong khi các câu lệnh #define được xử lý bởi bộ xử lý trước.
Ví dụ sau cho thấy cách sử dụng #define trong một chương trình:
#include
#define TRUE 1
#define FALSE 0
int main( ) {
printf( "Value of TRUE : %d\n", TRUE);
printf( "Value of FALSE : %d\n", FALSE);
return 0;
}
Khi mã trên được biên dịch và thực hiện, nó tạo ra kết quả sau:
Value of TRUE : 1
Value of FALSE : 0