Định nghĩa kiểu bằng typedef

Một phần của tài liệu giao trinh C(dttx) pot (Trang 120 - 122)

- Kết quả trả về của hàm là ký tự được ấn.

HÀM MAIN CÓ THAM SỐ – CON TRỎ HÀM

2.3. Định nghĩa kiểu bằng typedef

Cú pháp

Ngôn ngũ C cho phép ta đặt lại tên kiểu cho riêng mình bằng câu lệnh như sau:

typedef kiểu_đã_có tên_kiểu_mới;

trong đó :

kiểu_đã_có là kiểu dữ liệu mà ta muốn đổi tên.  tên_kiểu_mới là tên mới mà ta muốn đặt.  Ví dụ

Xét câu lệnh sau

sau câu lệnh này, byte được xem như là kiểu dữ liệu tương đương với unsigned char và có thể được sử dụng trong các khai báo biến như các kiểu dữ liệu khác.

Chương trình ví dụ #include <stdio.h>

typedef unsigned char byte; void main() { byte ch=12, ch1; int i; ch1=ch; for (i=0;i<5;i++) ch>>=1;

printf("byte %X sau khi dich phai nam lan là %X",ch1,ch); getch();

}

Kết quả chạy chương trình

Byte C sau khi dich phai nam lan la 0

typedef thường được sử dụng để định nghĩa các kiểu dữ liệu phức hợp thành một tên duy

nhất để dễ dàng viết hơn trong khi viết.

Ví dụ

typedef int * PTR_INT;

định nghĩa một kiểu dữ liệu con trỏ nguyên. Sau câu lệnh này để khai báo một biến con trỏ nguyên chúng ta chỉ cần viết:

PTR_INT ptr_int;

Đặc biệt đối với các kiểu dữ liệu cấu trúc, typedef cho phép đơn giản hóa cách viết khai báo. Xét ví dụ sau:

typedef struct hoc_sinh{

char ho_ten[20]; float diem;

}t_hoc_sinh,*ptr_hoc_sinh;

với câu lệnh này tên mới của cấu trúc structhoc_sinh sẽ là t_hoc_sinh. Đồng thời câu lệnh này còn định nghĩa một kiểu con trỏ cấu trúc có tên là ptr_hoc_sinh. Khi đó câu lệnh khai báo biến cấu trúc viết gọn lại như sau:

t_hoc_sinh hs,dshs[100];

ptr_hoc_sinh ptrhs;

câu lệnh này rõ ràng ngắn ngọn hơn so với câu lệnh

struct hoc_sinh *ptrhs.

Một phần của tài liệu giao trinh C(dttx) pot (Trang 120 - 122)