Таким образом, после исследования механизмов много я создавал 2-ю платформу для iPhone. Поскольку Вы знаете, что мир архитектуры механизма обширен, таким образом, я пытался применить лучшие практики как можно больше.
Я использовал:
uint_fast8_t mId;
Если я ищу определение uint_fast8_t, я нахожу:
/* 7.18.1.3 Fastest-width integer types */
...
typedef uint8_t uint_fast8_t;
И я использовал эти типы всюду по своему коду - Мой вопрос, там выигрыш в производительности к использованию этих типов? И что точно продолжается негласно? Помимо очевидного того, что это - правильный тип данных (неподписанное целое число на 8 битов) для данных, действительно ли стоит наперчить это всюду по моему коду?
Действительно ли это - бесполезная оптимизация, о которой, вероятно, заботился бы компилятор так или иначе?
Спасибо.
Править: Никакие ответы/ответы, таким образом, я помещаю щедрость на это!
«быстрые» целочисленные типы определены как самые быстрые из доступных целочисленных типов с не менее требуемым количеством битов (в данном случае 8).
Если ваша платформа определяет uint_fast8_t как uint8_t, тогда не будет абсолютно никакой разницы в скорости.
Причина в том, что могут быть архитектуры, которые работают медленнее, если не используют собственную длину слова. Например. Я смог найти одну ссылку, где для процессоров Alpha uint_fast_8_t был определен как "unsigned int".
uint_fast8_t - самое быстрое целое число, гарантированное шириной не менее 8 бит. В зависимости от Вашей платформы оно может быть 8 или 16 или 32 бита в ширину.
Это не забота компилятора, это действительно заставляет вашу программу выполнять быстрее
Вот некоторые ресурсы, которые я нашел, Вы, возможно, уже видели их http://embeddedgurus.com/stack-overflow/2008/06/efficient-c-tips-1-choosing-the-correct-integer-size/