char is required to be 1 byte, 1 byte is not required to be 8 bits (often also called an octet), even though most of modern computer platforms define it as 8 bits. The implementation's number of bits per char is provided by the CHAR_BIT macro, defined in <limits.h>. POSIX does require 1 byte to be 8 bits.