Кажется, что uint32_t
гораздо более распространен, чем uint_fast32_t
(я понимаю, что это анекдотическое доказательство). Это кажется мне интригующим.
Почти всегда, когда я вижу, что реализация использует uint32_t
, все, что она действительно хочет, представляет собой целое число, которое может содержать значения до 4 294 967 295 (обычно намного ниже, где-то между 65,535 и 4,294,967,295).
Кажется странным использовать uint32_t
, поскольку гарантия "ровно 32 бита" не нужна, а "самая быстрая доступная >= 32 бит" гарантия uint_fast32_t
кажется правильной идеей. Более того,
в то время как он обычно реализуется, uint32_t
на самом деле не гарантируется.
Почему бы предпочесть uint32_t
? Это просто лучше известно или есть технические преимущества по сравнению с другими?