title: Why would uint32_t be preferred rather than uint_fast32_t?
body: <p>It seems that <code>uint32_t</code> is much more prevalent than <code>uint_fast32_t</code> (I realise this is anecdotal evidence). That seems counter-intuitive to me, though.</p>
  
  <p>Almost always when I see an implementation use <code>uint32_t</code>, all it really wants is an integer that can hold values up to 4,294,967,295 (usually a much lower bound somewhere between 65,535 and 4,294,967,295).</p>
  
  <p>It seems weird to then use <code>uint32_t</code>, as the <em>'exactly 32 bits'</em> guarantee is not needed, and the <em>'fastest available >= 32 bits'</em> guarantee of <code>uint_fast32_t</code> seem to be exactly the right idea. Moreover, 
  while it's usually implemented, <code>uint32_t</code> is not actually guaranteed to exist.</p>
  
  <p>Why, then, would <code>uint32_t</code> be preferred? Is it simply better known or are there technical advantages over the other?</p>