Sven Williamson Sven Williamson -4 years ago 183
C Question

Should I use C types (uint8_t/.../uint64_t) or (u_int8_t/.../u_int64_t)?

My GNU-Linux platform (debian stretch) has the C types

u_int8_t
,
u_int16_t
,
u_int32_t
and
u_int64_t
defined in the file
sys/types.h
while
uint8_t
,
uint16_t
,
uint32_t
and
uint64_t
are defined in
stdint.h
. I have found these types useful in the course of practicing X86-64 assembly language and interacting with C. Is there any reason why I should prefer one header file over the other (be it 'best practice', portability etc.)?. Is the answer any different for C++?

Answer Source

stdint.h is standard C, which maps to cstdint in standard C++.

sys/types.h is not portable C.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download