Câu trả lời:
C99 stdint.hxác định những điều này:
int8_tint16_tint32_tuint8_tuint16_tuint32_tVà, nếu kiến trúc hỗ trợ chúng:
int64_tuint64_tCũng có nhiều kiểu gõ số nguyên khác nhau stdint.h.
Nếu bạn gặp khó khăn khi không có môi trường C99 thì có lẽ bạn nên cung cấp các typedef của riêng mình và sử dụng các loại C99.
Các uint32và uint64(tức là nếu không có sự _thậu tố) có lẽ là ứng dụng cụ thể.
stdint.hyêu cầu tất cả.
typedef uint32_t Uint32;trong bao gồm / SDL_stdinc.h (nếu bạn là SDL người dùng)
Tất cả các kiểu số nguyên đó đều được định nghĩa trong stdint.h
stdint.hnếu bạn tôn trọng tiêu chuẩn C99.
stdint.h. Này trả về 0 lượt truy cập: grep uint32 /usr/lib/gcc/x86_64-linux-gnu/4.9/include/stdint.h | grep -v uint32_t.
#include "stdint-gcc.h"và việc trộn tệp đó sẽ mang lại các định nghĩa.
_thậu tố, như được liệt kê trong câu trả lời ở trên.
Nếu bạn đang sử dụng C99 chỉ cần bao gồm stdint.h. BTW, các loại 64bit có iff bộ xử lý hỗ trợ chúng.
uint128_tif __SIZEOF_INT128__được xác định là 16 hoặc lớn hơn (GCC và tương thích). Nó có sẵn trên các máy x86_64 / amd64, nhưng bộ vi xử lý không hỗ trợ nó. Chỉ Cray có kích thước thanh ghi đó, IIRC.
int_leastNN_tvàuint_leastNN_tchoNN8, 16, 32 và 64 phải luôn tồn tại . C99 không cho phép triển khai mà không có kiểu số nguyên ít nhất 64 bit, vìlong longnó được yêu cầu ít nhất là lớn.