This reply was wrong, removed.
Please downvote it to oblivion.
Please downvote it to oblivion.
It's just inefficient, but sometimes needed (MMIO, inter-cpu visible byte changes, etc)
It is not a given that a C/C++ char is a "byte" in the conventional modern understanding of that word, though. sizeof(char)==sizeof(bool)===sizeof(int)==1 is a perfectly valid arrangement for an architecture that is only capable of addressing machine words, and there have been such architectures historically although I'm not sure any are still around today.
EDIT: never mind, guess I misremembered! it's just mandated to be at least 8 bits