2015-05-20 3 views
3

Я читаю о равношироких целочисленных типах (cpp reference) и попадались типы int_fast8_t, int_fast16_t, int_fast32_t и int_least8_t, int_least16_t, int_least32_t и др. Мои вопросы следующиебыстрые/маленький знаковый целочисленный тип

  1. Что это значит, говоря, например int_fast32_t является быстрого знакового целочисленного типа (с, по меньшей мере, 32 бит)? Является ли более распространенный тип unsigned int медленным?
  2. Что это значит, например, int_least32_t является наименьшим подписанным целым типом?
  3. В чем разница между int_fast32_t, int_least32_t и unsigned int?

ответ

6

int_fast32_t означает, что это самый быстрый тип по меньшей мере 32 бит для процессора. Для большинства процессоров это, вероятно, 32-битный int. Но представьте себе 48-битный процессор без 32-разрядной инструкции добавления. Хранение всех 48 бит быстрее. int_least32_t - наименьший тип для цели, которая может содержать 32 бита. На гипотетическом 48-битном процессоре может поддерживаться 32-битный тип данных с поддержкой библиотеки для их реализации. Или int_least32_t может также быть 48 бит. int обычно является самым быстрым целым типом для цели, но нет никакой гарантии относительно количества бит, которое вы получите.

+0

Спасибо, очень хорошо это знать. – Allanqunzi

Смежные вопросы