Chris F. answered 04/18/23
A Solid Computer Engineering Tutor
The C language only specifies that the minimum size for an unsigned char is 8 bits. It is legal for a C implementation to have a 16 bit char, but it would not be legal for a uint8_t to take up 16 bits. That's the difference.
In practice it won't actually matter much, but do note that there are some odd duck machines out there that have 16-bit chars (Digital Signal Processors, or DSPs for short, sometimes have this property). I even found a few machine with 9 bit chars when researching this answer, although those guys are quite, quite old.
Hope this helps!
Chris