Я всегда использовал typedef во встроенном программировании, чтобы избежать распространенных ошибок:
int8_t
- 8-битовое целое число со знаком
int16_t
- 16-разрядное целое число со знаком
int32_t
- 32-разрядное целое число со знаком
uint8_t
- 8-битное целое число без знака
uint16_t
- 16-разрядное целое число без знака
uint32_t
- 32-разрядное целое число без знака
Недавняя встроенная муза (выпуск 177, еще не опубликованная на сайте) подтолкнула меня к мысли, что полезно иметь некоторые специфичные для производительности typedefs. Этот стандарт предлагает иметь typedefs, которые указывают, что вы хотите самый быстрый тип с минимальным размером.
Например, можно объявить переменную, используя int_fast16_t
, но на самом деле она будет реализована как int32_t
на 32-битном процессоре или int64_t
на 64-битном процессоре, так как это будут самые быстрые типы по крайней мере 16 бит на этих платформах. На 8-битном процессоре это будет int16_t
бит, чтобы соответствовать требованию минимального размера.
Никогда раньше не видел такого использования, я хотел знать
- Вы видели это в каких-либо проектах, встроенных или нет?
- Какие-нибудь возможные причины, чтобы избежать такого рода оптимизации в typedefs?