ここは，C99 で sizeofを「型 char，unsigned char 若しくは signed char（又はそれらの修飾版）をもつオペランドに適用した場合の結果は，1 とする。」としていることを利用しています．
(細かく言うとちょっとダーティなのですが．)

多くのコンパイラで uint8_t は unsigned char の typedef のはずですが，C99 が保証していません．
sizeof(uint8_t) > 1 である可能性を捨てられないのです．
よって，ここだけ敢えて char * にしています．