Tôi có bộ đệm char
(tức là byte) mà tôi đang gửi qua mạng. Tại một số thời điểm trong tương lai, tôi có thể muốn chuyển bộ đệm sang một loại khác như unsigned char
hoặc short
. Tôi đã suy nghĩ về việc làm một cái gì đó như thế này:Sử dụng hợp lệ typedef?
typedef char bufferElementType;
Và bất cứ khi nào tôi làm bất cứ điều gì với một yếu tố đệm Tôi tuyên bố nó như bufferElementType
hơn char
. Bằng cách đó, tôi có thể chuyển sang loại khác bằng cách thay đổi typedef này (tất nhiên nó sẽ không đơn giản như vậy, nhưng ít nhất cũng sẽ dễ dàng xác định các địa điểm cần sửa đổi ... sẽ có bufferElementType
gần đó) .
Đây có phải là cách sử dụng hợp lệ/tốt cho typedef không? Nó không đáng để giải quyết rắc rối? Nó sẽ làm tôi đau đầu vào một thời điểm nào đó trong tương lai? Nó sẽ làm cho các lập trình viên bảo trì ghét tôi chứ?
Tôi đã đọc qua When Should I Use Typedef In C++, nhưng không ai thực sự đề cập đến điều này.
Bạn có sử dụng mảng loại này cho bộ đệm của mình không? Hoặc bạn có nghĩa là bộ đệm là 1 byte dài, và bạn có thể muốn làm cho nó 2 byte hoặc 4 byte trong tương lai? –
Trong trường hợp đó, không có nhiều lợi thế khi sử dụng "typedef char bufferElementType;". Nếu bạn sử dụng cùng một kích thước mảng ở khắp mọi nơi, có thể hữu ích khi gõ toàn bộ loại mảng: "typedef char [1024] bufferElementType;" - cho phép bạn thay đổi kích thước bộ đệm ở mọi nơi trong một lần. –
Nếu các bộ đệm của bạn thực sự giữ các ký tự "văn bản" và bạn đang xem xét chuyển đổi từ mã hóa ký tự chính xác-1-byte (ví dụ ANSI) thành mã hóa ký tự chính xác 2 byte hoặc chính xác 4 byte, typedef là con đường để đi. –