Từ khóa typedef trong C Ngôn ngữ chương trình C cung cấp một từ khóa typedef, mà bạn có thể sử dụng để cung cấp kiểu cho một tên mới.. Dưới đây là một ví dụ để định nghĩa một mục BYTE ch
Trang 1Từ khóa typedef trong C
Ngôn ngữ chương trình C cung cấp một từ khóa typedef, mà bạn có thể sử dụng để cung cấp kiểu cho một tên mới Dưới đây là một ví dụ để định nghĩa một mục BYTE cho các số 1
byte (như unsigned char)
typedef unsigned char BYTE ;
Sau khi định nghĩa kiểu này, định danh BYTE có thể được sử dụng như là tên viết tắt cho
các kiểu unsigned char, ví dụ:
BYTE b1 , b2 ;
Theo quy ước, các chữ cái viết hoa được sử dụng cho những định nghĩa này để cho
người sử dụng dễ ghi nhớ, nhưng bạn có thể sử dụng kiểu chữ thường như sau:
typedef unsigned char byte ;
Bạn cũng có thể sử dụng typedef để cung cấp một tên cho người sử dụng kiểu dữ liệu đã được định nghĩa 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 một cách trực tiếp như sau:
#include <stdio.h> #include <string.h> typedef struct Books char
tieude [ 50 ]; char tacgia [ 50 ]; char chude [ 100 ]; int id ; } Book ;
int main ( ) { Book book ; strcpy ( book tieude , "Lap trinh C" );
strcpy ( book tacgia , "Pham Van At" ); strcpy ( book chude , "Ngon ngu lap
trinh C" ); book id = 1234567 ; printf ( "Tieu de: %s\n" , book tieude ); printf ( "Tac gia: %s\n" , book tacgia ); printf ( "Chu de: %s\n" , book chude ); printf ( "ID: %d\n" , book id ); printf ( "\n===========================\n" ); printf ( "VietJack chuc cac ban hoc tot! \n" ); return ; }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
Trang 2typedef vs #define trong C
#define là một directive trong C mà cũng được sử dụng để định nghĩa tên hiệu (viết tắt) cho các kiểu dữ liệu đa dạng tương tự như typedef nhưng có những điểm khác nhau sau:
• typedef được giới hạn chỉ cung cấp các tên viết tắt cho các kiểu, trong khi đó#define có thể được sử dụng để định nghĩa tên hiệu cho cả các giá trị, như bạn
có thể định nghĩa 1 là ONE, …
• Sự phiên dịch typedef được thực hiện bởi bộ biên dịch, trong khi lệnh #defineđược
xử lý bởi bộ tiền xử lý
Sau đây là cách sử dụng đơn giản nhất của #define:
#include <stdio.h> #define TRUE 1 #define FALSE 0 int main ( ) { printf (
"Gia tri TRUE tuong duong: %d\n" , TRUE ); printf ( "Gia tri FALSE tuong duong:
%d\n" , FALSE ); printf ( "\n===========================\n" );
printf ( "VietJack chuc cac ban hoc tot! \n" ); return ; }
Biên dịch và chạy chương trình C trên sẽ cho kết quả: