Trang ChínhTrang Chính  CalendarCalendar  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Hãy sử dụng FireFox để web hiển thị tốt hơn!


Share | 
 

 Sự tinh tế của Typedef

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Tboy
Cá voi
Cá voi
avatar


Nam Tổng số bài gửi : 178
Cảm ơn : 413
Danh vọng : 4
Join date : 03/01/2011
Age : 25
Đến từ : TPHCM

Bài gửiTiêu đề: Sự tinh tế của Typedef   Tue Mar 08, 2011 8:57 pm

Tue Mar 08, 2011 8:57 pm » Sự tinh tế của Typedef
Với người lập trình C, việc bắt gặp và sử dụng TypeDef không có gì là
lạ lẫm hay khó hiểu. Thế nhưng không phải ai cũng có thể thấy hết được
sự tiện lợi và hiệu quả trong việc sừ dụng typedef cũng như bản chất
bên trong của nó là gì. Chúng ta hãy cùng tìm hiểu vấn đề này.

Mọi
người đầu biết typedef đơn thuần là tạo thêm một tên mới cho một cho
kiểu dữ liệu có sẵn, có nghĩa là không tạo ra một kiểu dữ liệu mới. Ví
dụ :

typedef unsigned long int uli;
uli i, j;
unsigned long int x, y;

Trong
đọan mã khai báo trên, các biến i, j có kiểu hoàn tòan giống với biến
x, y. Thực ra, về mặt chức năng, typedef giống với #define. Ngoại trừ
một điều : lện typedef được thông dịch bởi trình biên dịch, nghĩa là
typedef có thể có được tính năng mà các lệnh tiền xử lý thông thường
không thể nào đạt đến.

Có 3 lý do khiến chúng ta dùng typedef :

1-
Các câu lệnh khai báo phức tạp sẽ được viết dễ dàng hơn bằng cách dùng
typedef. Với cách này, người lập trình loai trừ được phần lớn sự phức
tạp của chương trình. Việc sử dụng typedef hợp lý sẽ khiến chương trình
trong sáng hơn nhiều.

2- Hỗ trợ cho việc tạo các chương trình
linh hoạt, dễ di chuyển từ máy này sang máy khác. Nghĩa là, nếu dùng
typedef để định nghĩa một kiểu dữ liệu phụ thuộc vào một cấu trúc máy
nào đó, khi chương trình được đem đến một máy mới, chúng ta chỉ cần
thay đổi câu lệnh typedef tương ứng với kiểu dữ liệu trên máy này.

dụ minh họa cho tính năng này là dùng typedef định nghĩa kiểu đại diện
cho số nguyên (kích thước của kiểu này thay đổi phụ thuộc vào máy
tính), sau đó chúng ta sẽ lựa chọn một kiểu phù hợp (vd : short, long
hay int) tùy thuộc vào máy tính chứa chương trình.

3- Giúp
chương trình trở nên dễ đọc, dễ hiểu. Ví dụ : một nút của danh sách
liên kết đôi sẽ dễ hiểu hơn khi được viết dưới dạng ptr_to_list thay vì
là một con trỏ trỏ đến một cấu trúc phức tạp.

Bây giờ, chúng ta đề cập đến một vài nét tinh tế trong viêc sử dụng typedef. Hãy xem đoạn mã sau :

typedef char * string_t;
#define string_d char *;

string_t s1, s2;
string_d s3, s4;

Bạn có thể nhìn thấy được sự khác biệt của cách dùng typedef và #define ?

Trong
các câu lệnh khai báo trên, s1, s2 có kiểu là char*, nhưng s3, s4 có
kiểu là char (kiểu ký tự), không phải là char* như mong muốn. Vì vậy,
trong đa số trường hợp, typedef được ưa chuộng hơn #define vì nó có thể
mã hóa kiểu pointer một cách chính xác. Không những vậy, typedef còn có
ưu điểm là tuân theo các luật về tầm vực, nghĩa là typedef có thể được
khai báo một cách cục bộ bên trong một chương trình con hay một khối
lệnh trong khi #define luôn tạo ra môt tác động có tính toàn cục.

[Sưu tầm]


Tboy



Về Đầu Trang Go down
Xem lý lịch thành viên http://taplaptrinh.forumvi.com
love_stormHL
Gà choai
Gà choai
avatar


Nam Tổng số bài gửi : 20
Cảm ơn : 22
Danh vọng : 0
Join date : 02/03/2011
Age : 27
Đến từ : Vũng Tàu

Bài gửiTiêu đề: Re: Sự tinh tế của Typedef   Wed Mar 09, 2011 12:14 am

Wed Mar 09, 2011 12:14 am » Re: Sự tinh tế của Typedef
ồ rất hay thanks


love_stormHL

Về Đầu Trang Go down
Xem lý lịch thành viên
Big Boss
Trứng gà
Trứng gà
avatar


Nam Tổng số bài gửi : 16
Cảm ơn : 16
Danh vọng : 0
Join date : 21/01/2011
Age : 24
Đến từ : TP.HCM

Bài gửiTiêu đề: Re: Sự tinh tế của Typedef   Fri Apr 08, 2011 7:39 pm

Fri Apr 08, 2011 7:39 pm » Re: Sự tinh tế của Typedef
Need experience !?!


Big Boss

Về Đầu Trang Go down
Xem lý lịch thành viên
Sponsored content




Bài gửiTiêu đề: Re: Sự tinh tế của Typedef   

» Re: Sự tinh tế của Typedef


Sponsored content

Về Đầu Trang Go down
 

Sự tinh tế của Typedef

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 

 Similar topics

-
» Tại sao chỉ có Việt Nam đổi hệ thống chữ viết biểu ý sang hệ thống chữ viết dùng chữ cái La tinh?
» Cơ sở làm quả cầu thủy tinh, quả cầu pha lê đẹp giá rẻ
» Bán mảnh đất 40m2 tại tình quang, giang biên, LB, HN.
» cần bán đất ở Hiệp Thành tx-tdm, giá rẽ, pháp lý rõ ràng. hãy liên hệ: 0909.384.718
» Chữa bệnh điếc đột ngột bằng bấm huyệt như thế nào?
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
 :: Chia sẻ tài liệu-