Кажется, что 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? Это просто лучше известно или есть технические преимущества по сравнению с другими?