Re: [patch] Input cleanups for 2.5.29 [2/2]

Ben Pfaff
2002-07-30T21:52:16Z

Alexander Viro <viro@math.psu.edu> writes:

> Strictly speaking, there might be a DISadvantage - IIRC, there's nothing to
> stop gcc from
> #define uint8_t unsigned long long /* it is at least 8 bits */
> ICBW, but wasn't uint<n>_t only promised to be at least <n> bits?

No. See C99 7.18.1.1:

7.18.1.1 Exact-width integer types

1 The typedef name intN_t designates a signed integer type with
width N, no padding bits, and a two's complement
representation. Thus, int8_t denotes a signed integer type
with a width of exactly 8 bits.

2 The typedef name uintN_t designates an unsigned integer type
with width N. Thus, uint24_t denotes an unsigned integer
type with a width of exactly 24 bits.

3 These types are optional. However, if an implementation
provides integer types with widths of 8, 16, 32, or 64 bits,
it shall define the corresponding typedef names.

--
"To the engineer, the world is a toy box full of sub-optimized and
feature-poor toys."
--Scott Adams