В один байт компилятор/JIT может захуячить структуру вроде: { int<1..5> a; int<1..5> b; int<0..9> c; } А может и 3 DWORD'а сделать, смотря что эффективней это не сделать только задавая длину поля в битах
Примерно по этим же самым причинам битовые поля считаются плохо переносимыми, а им уже много лет. Упаковка нескольких чисел в один байт с нефиксированными границами внутри сведет с ума процессор на ALU. Ну и делать представление базового типа зависящим от чего-то кроме платформы это кошмар.
Ну так речь и идет о том, что мы декларируем платформонезависимые диапазоны, а при запуске бинарника на разных платформах получаем разный ассемблерный код и разную паковку структур в памяти.
no subject
Date: 2009-10-16 10:11 am (UTC){
int<1..5> a;
int<1..5> b;
int<0..9> c;
}
А может и 3 DWORD'а сделать, смотря что эффективней
это не сделать только задавая длину поля в битах
no subject
Date: 2009-10-16 10:56 am (UTC)no subject
Date: 2009-10-16 05:05 pm (UTC)Ну так речь и идет о том, что мы декларируем платформонезависимые диапазоны, а при запуске бинарника на разных платформах получаем разный ассемблерный код и разную паковку структур в памяти.