I just stumbled upon the type u_int8_t
because it did not compile in Windows+MinGW (but compiled fine under Linux). According to this site the C++11 standard defines the type uint8_t
. I just used the latter and everything worked.
The questions that arised are:
u_int8_t
and uint8_t
? u_int8_t
?uint8_t
will be present if I use a C++11 compiler (on different OS or architectures)?intX_t
and uintX_t
)?Is there any difference between
u_int8_t
anduint8_t
?
u_int8_t
is just a very old name that was not standardised. Avoid it.
Is there a reason (besides legacy code) to use
u_int8_t
?
Suicide by coworker.
Is it safe to assume that
uint8_t
will be present if I use a C++11 compiler (on different OS or architectures)?
The C++ standard requires it to be present on all implementations that have an unsigned 8-bit type available (today that means everything that is not exotic).
Are the answers to the above questions also valid for the other types (
intX_t
anduintX_t
)?
Pretty much, yes.