Цитата(zltigo @ Jan 11 2008, 12:47)

Если вдруг есть какие-то дополнительные официальные (а не очевидные трактовки fast и least) рекомендации было-бы интересно посмотреть.
Ничего кроме пары абзацев в стандарте не видел. От них устойчивое впечатление как "оптимизация преимущественно на размер" и "оптимизация преимущественно на скорость" для платформ начиная от 8-битных и больше ничего.
Это
типы, а register - это storage class - вещи ортогонгальные. Может быть
register int_least8_t и может быть
int_fast8_t без него.
Цитата(zltigo @ Jan 11 2008, 12:47)

Проблема не в усмотрении, а в том, что это "усмотрение" не всегда нравится - на том-же ARM нет "вполне приличной работы с байтами". Нет

, посему когда вдруг он вдруг компилятор иногда начинает
дополнительно извращаться с какой-нибудь 24bit маской

мне это совершенно не нравится.
Ну так если интересовала по мере возможности скорость работы, а не по мере возможности компактность размещения в памяти - то почему был взят int_least8_t а не int_fast8_t ???
Я надеюсь, что fast8 таки на ARM будет 32 бита, ну а на AVR будет 8, так как их хватает.
Цитата
7.18.1.2 Minimum-width integer types
1 The typedef name int_leastN_t designates a signed integer type with a width of at least N, such that no signed integer type with lesser size has at least the specified width. Thus, int_least32_t denotes a signed integer type with a width of at least 32 bits.
2 The typedef name uint_leastN_t designates an unsigned integer type with a width of at least N, such that no unsigned integer type with lesser size has at least the specified width. Thus, uint_least16_t denotes an unsigned integer type with a width of at least 16 bits.
3 The following types are required:
int_least8_t
int_least16_t
int_least32_t
int_least64_t
uint_least8_t
uint_least16_t
uint_least32_t
uint_least64_t
All other types of this form are optional.
7.18.1.3 Fastest minimum-width integer types
1 Each of the following types designates an integer type that is usually fastest216) to operate with among all integer types that have at least the specified width.
2 The typedef name int_fastN_t designates the fastest signed integer type with a width of at least N. The typedef name uint_fastN_t designates the fastest unsigned integer type with a width of at least N.
216) The designated type is not guaranteed to be fastest for all purposes; if the implementation has no clear grounds for choosing one type over another, it will simply pick some integer type satisfying the signedness and width requirements.
3 The following types are required:
int_fast8_t
int_fast16_t
int_fast32_t
int_fast64_t
uint_fast8_t
uint_fast16_t
uint_fast32_t
uint_fast64_t
All other types of this form are optional