On Tue, 26 Jul 2016, Warren D Smith wrote: > --mind-boggling. > So they actually intentionally made the language worse > in the C11 TC3 revision versus the C99 standard.
There is no such thing as C11 TC3. All the relevant requirements about being integer numbers of bytes are present in the original C99 (which I expect is available to purchase from organisations specialising in the sale of obsolete standards), as are the relevant requirements on intN_t and uintN_t; it's just that referring to the original C99 for <stdint.h> requirements is a bad idea because of several other issues raised in various C99 DRs and addressed through TC1, TC2 and TC3 (all three of which made changes to the <stdint.h> specification). Furthermore, while the subclause with wording about representations of types is new in C99, exactly the same requirement about being integer numbers of bytes can be found in C90; see the definition of "object" (subclause 3.14 in C90). No doubt the principle of objects being addressable and made up of bytes, except for the special case of bit-fields, dates back long before C90. -- Joseph S. Myers jos...@codesourcery.com