Почти в каждой реализации C ++, с которой вы столкнетесь, char
- это точно a byte
октет. Это не гарантируется стандартом C ++, но практически всегда так. char
всегда имеет размер , по крайней мере, 8 бит, а точное число бит определяется константой препроцессора CHAR_BIT
. Кроме того, оператор sizeof()
сообщает вам размер объекта / типа в терминах количества char
s, а не числа байтов октетов, так что если вы работали в какой-то странной системе с 16-битный char
и 32-битный int
, тогда sizeof(int)
будет 2, а не 4.
РЕДАКТИРОВАТЬ: Заменен байт на октет. char
гарантированно будет байтом по стандарту C, но байт не обязательно будет октетом, который составляет ровно 8 бит. Если вы когда-либо читали какую-либо французскую техническую литературу, они всегда используют «октет» вместо «байт», и у них есть килоктет (КО), мегаоктет (МО) и т. Д. Вместо килбайт и мегабайт.