int8_t
int16_t
int32_t
int64_t are signed integer type with width of
exactly 8, 16, 32 and 64 bits respectively
with no padding bits and using 2’s complement for negative values
(provided only if the implementation directly supports the type)..
And int_least8_t
int_least16_t
int_least32_t
int_least64_t are smallest signed integer type with width of
at least 8, 16, 32 and 64 bits respectively .
If an implementation has int8_t
, then it looks like a natural choice for int_least8_t
, as it is a type with width at least 8. However, for example on LLP64 data model both int
and long
are 32-bits, so int32_t
could be int
but int_least32_t
could be long
, which would be confusing, but is it valid?
Can I reasonably expect that int_least8_t
and int8_t
will be the same type? Is there an actual implementation where int_leastX_t differs from intX_t? (except DeathStation 9000)