Simply put in C and variants (unlike that wuss java with its virtual machine) the size of primitive types on different targets can vary greatly, and there is really no guarantee
sizeof gives the size in bytes. However, note that "byte" is a technical term in the C standard, and is defined such that sizeof(char) == 1.
sizeof
sizeof(char) == 1