Nếu bạn muốn sử dụng Qt , bạn phải nắm lấy quint8
, quint16
v.v.
Nếu bạn muốn sử dụng GLib , bạn phải chào đón guint8
, guint16
v.v.
Trên Linux có u32
, s16
v.v.
uC / OS định nghĩa SINT32
, UINT16
v.v.
Và nếu bạn phải sử dụng một số kết hợp của những thứ đó, bạn nên chuẩn bị cho những rắc rối. Bởi vì trên máy tính của bạn u32
sẽ typedef
kết thúc long
và quint32
sẽ typedef
kết thúc int
và trình biên dịch sẽ phàn nàn .
Tại sao mọi người làm điều này, nếu có <stdint.h>
? Đây có phải là một kiểu truyền thống cho các thư viện?
stdint.h
được phát minh.
sizeof(int) * CHAR_BIT
(ví dụ) và sử dụng điều đó? Nếu của bạn int
quá nhỏ để đại diện cho phạm vi của bạn (ví dụ: chỉ số mảng), thì bạn gần như chắc chắn không nên sử dụng int
dù sao, nhưng một cái gì đó giống như size_t
. Tại sao sẽ int32
có ý nghĩa hơn? Thời gian duy nhất cố định chiều rộng có ý nghĩa là để giao tiếp giữa các hệ thống (ví dụ như tập tin định dạng / mạng) ...
uint16_t
(hoặc có thể fast
hoặc least
biến thể của nó ). Quan điểm của tôi là: Những loại này rất thuận tiện để sử dụng và có lý do tồn tại của chúng.
size_t
và / hoặc uint64_t
.