Explanation for micros function I was trying to understand the working of micros() function internally and I had a look at the function in Arduino.h

This is the code:

unsigned long micros() {
    unsigned long m;
    uint8_t oldSREG = SREG, t;

    cli();
    m = timer0_overflow_count;
 #if defined(TCNT0)
    t = TCNT0;
 #elif defined(TCNT0L)
    t = TCNT0L;
#else
    #error TIMER 0 not defined
#endif


#ifdef TIFR0
        if ((TIFR0 &amp; _BV(TOV0)) &amp;&amp; (t &amp; 255))
        m++;
#else
        if ((TIFR &amp; _BV(TOV0)) &amp;&amp; (t &amp; 255))
        m++;
#endif

    SREG = oldSREG;

    return ((m &lt;&lt; 8) + t) * (64 / clockCyclesPerMicrosecond());
}


Can someone please explain me what this line is doing :

  if ((TIFR0 &amp; _BV(TOV0)) &amp;&amp; (t &amp; 255))
   m++;
If the timer 0 has overflowed (TIFR0 &amp; _BV(TOV0)) and there is at least a count of 1 in the timer count register (t &amp; 255) then increment the local copy of the overflow count.

That overflow count is used later on to add an upper 8 bits to what is basically an 8 bit counter to turn it into a 16 bit one ((m &lt;&lt; 8) + t).