C стандарт использует слово байт во многих разных местах. По большей части это что-то очень похожее на мое понимание этого слова - кусок данных длиной 8 битов.
Но:
Оператор sizeof возвращает размер (в байтах) своего операнда
И
Когда sizeof применяется к операнду с типом char, unsigned
char или подписанный char (или его квалифицированная версия) результат 1
Позже:
При применении к операнду с типом массива, результатом является
общее количество байтов в массиве.
Таким образом, если мы рассмотрим машину с char
, имеющую более 8 бит, наблюдаемое поведение этой программы будет отличаться от 8-битового символа.
char foo[5];
for(size_t index = 0; index < sizeof(foo) / sizeof(char); index++)
{
/* some code */
}
Так что, возможно, значение байта отличается в понимании стандарта C. Может ли кто-нибудь объяснить: это байт 8 бит или байт это что-то другое
И еще один вопрос.
это sizeof(char) == sizeof(array[0])
? С учетом различий в байтах