What is a “byte” in C / C++

2019-02-16 06:12发布

问题:

For example, here's a reference for fread:

size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

Reads an array of count elements, each one with a size of "size bytes"... So how many BITS will read an fread(&x, 1, 1, stream)? Eight or CHAR_BIT?

回答1:

C99, §3.6:

byte

addressable unit of data storage large enough to hold any member of the basic character set of the execution environment

and §5.2.4.2.1:

CHAR_BIT — number of bits for smallest object that is not a bit-field (byte)

Thus, a "byte" contains CHAR_BIT bits.



回答2:

CHAR_BIT. The bit width of a byte is implementation-defined and is available to the developer via the CHAR_BIT macro.