Integers can be specified to have various sizes for their data chunk. The smallest chunk is a single byte. This is called a char. It is so named for historical reasons. Before Unicode came along, the full set of English characters, uppercase, lowercase, numbers, punctuation, and certain special characters, could be represented with 256 values. In some languages, a byte is actually called a byte; unfortunately, not in C.
C99 added more integer types that specify the minimum width of integer values. The basic set of these are of the int<n>_t or uint<n>_tforms, where <n> is either 8, 16, 32, or 64. The values of these types are exactly that number of bits. Such type specifications allow much greater predictability when porting a program from one computer system to a different one with possibly a different CPU and operating system. There are additional integer types to aid portability not listed here: