Difference between uint8_t, uint_fast8_t and uint_least8_t
<p>The C99 standard introduces the following datatypes. The documentation can be found <a href="http://www.nongnu.org/avr-libc/user-manual/group__avr__stdint.html#ga8f075c759c74e109e8184306c663809d">here</a> for the AVR stdint library.</p>

<ul>
<li><code>uint8_t</code> means it's an 8-bit unsigned type.</li>
<li><code>uint_fast8_t</code>  means it's the fastest unsigned int with at least 8
bits.</li>
<li><code>uint_least8_t</code> means it's an unsigned int with at least 8 bits.</li>
</ul>

<p>I understand <code>uint8_t</code> and what is <code>uint_fast8_t</code>( I don't know how it's implemented in register level).</p>

<p>1.Can you explain what is the meaning of "it's an <code>unsigned int</code> with at least 8 bits"? </p>

<p>2.How <code>uint_fast8_t</code> and <code>uint_least8_t</code> help increase efficiency/code space compared to the <code>uint8_t</code>?</p>