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 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 0; }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
typedef 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 0; }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.
Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack
Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Các bài học lập trình C phổ biến khác tại VietJack: