Previous Table of Contents "New C Standard" commentary

659
Every integer type has an *integer conversion rank* defined as
follows:

660 — No two signed integer types shall have the same rank, even if they have the same representation.

661 — The rank of a signed integer type shall be greater than the rank of any signed integer type with less precision.

662
— The rank of

663 — The rank of any unsigned integer type shall equal the rank of the corresponding signed integer type, if any.

664 — The rank of any standard integer type shall be greater than the rank of any extended integer type with the same width.

665
— The rank of

666
— The rank of

667 — The rank of any enumerated type shall equal the rank of the compatible integer type (see 6.7.2.2).

668 — The rank of any extended signed integer type relative to another extended signed integer type with the same precision is implementation-defined, but still subject to the other rules for determining the integer conversion rank.

669
— For all integer types

670
The following may be used in an expression wherever an

671
— An object or expression with an integer type whose integer
conversion rank is less than

672
— A bit-field of type

673
If an

674
otherwise, it is converted to an

675
These are called the *integer promotions*.^{48)}

676 All other types are unchanged by the integer promotions.

677 The integer promotions preserve value including sign.

678
As discussed earlier, whether a “plain”

679
**Forward references:**
enumeration specifiers (6.7.2.2), structure and union specifiers
(6.7.2.1).

Created at: 2008-01-30 02:39:41 The text from WG14/N1256 is copyright © ISO