Per the C standard `sizeof(char)` is always 1, regardless of how many bits it has.

What you seek is CHAR_BIT

because it's the unit of addressable memory that C is concerned by with sizeof, otherwise its values still depend on CHAR_BIT