Существуют ли машины (или компиляторы), где sizeof(char) != 1
?
Знает ли стандарт C99, что sizeof(char)
при стандартном выполнении соответствия ДОЛЖНО быть ровно 1? Если да, пожалуйста, дайте мне номер раздела и цитату.
Обновление:
Если у меня есть машина (CPU), которая не может адресовать байты (минимальное чтение - 4 байта, выровнено), но только 4-х байтов (uint32_t
), может компилятор для этой машины определить sizeof(char)
до 4?sizeof(char)
будет 1, но char будет иметь 32 бита (CHAR_BIT
макросы)
Update2: Но результат sizeof НЕ БАЙТЫ! это размер CHAR. И char может быть 2 байта или (может быть) 7 бит?
Update3:
ОК. Все машины имеют sizeof(char) == 1
. Но какие машины имеют CHAR_BIT > 8
?