|
Как сделать структуру из битовых полей минимального размера? |
|
|
|
Sep 30 2015, 15:54
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Подскажите опции, как сделать подобную структуру 1 байт длины при всех попытках получается 4 байта CODE /** * Состояние во время работы - 1 байт */ typedef struct { unsigned device_in_runtime : 1; unsigned acquisition_running : 1; unsigned gps_sync_ok : 1; unsigned queue_overrun : 1; unsigned rsvd0:4; } RUNTIME_STATE;
|
|
|
|
|
 |
Ответов
|
Sep 30 2015, 16:17
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
не досмотр с меня под вечер.. CODE
typedef struct { bool device_in_runtime : 1; bool acquisition_running : 1; bool gps_sync_ok : 1; bool queue_overrun : 1; bool rsvd0:4; } RUNTIME_STATE;
тип правильный укажите...
Сообщение отредактировал kolobok0 - Sep 30 2015, 16:44
|
|
|
|
|
Sep 30 2015, 19:22
|
Знающий
   
Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748

|
Цитата(kolobok0 @ Sep 30 2015, 19:17)  не досмотр с меня под вечер.. CODE
typedef struct { bool device_in_runtime : 1; bool acquisition_running : 1; bool gps_sync_ok : 1; bool queue_overrun : 1; bool rsvd0:4; } RUNTIME_STATE;
тип правильный укажите... ставил и pragma pack(1) и __attrib__ ((packed)) попробую завтра поменять unsigned на u8 меня сбило с толку что в борланде размер этой структуры получился 1 байт хотя то же стояло unsigned
|
|
|
|
|
Sep 30 2015, 19:49
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(inventor @ Sep 30 2015, 22:22)  ставил и ... CODE
typedef struct { bool device_in_runtime : 1; bool acquisition_running : 1; bool gps_sync_ok : 1; bool queue_overrun : 1; bool rsvd0:4; } RUNTIME_STATE;
тупо скопируйте тот код что запостил я. потом компильнитесь и посмотрите отличия от Вашего варианта... Цитата(zltigo @ Sep 30 2015, 21:02)  Что это написано? Не осилил  конкретнее какие слова не понятны?
Сообщение отредактировал kolobok0 - Sep 30 2015, 19:50
|
|
|
|
|
Oct 1 2015, 06:31
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (kolobok0 @ Sep 30 2015, 22:49)  конкретнее какие слова не понятны? К сожалению все  . Не могу даже ухватиться за какую-то тень мысли  QUOTE (den_po @ Oct 1 2015, 00:17)  sizeof(bool) не обязан быть 1 Именно так! Зависит от платформы и компилятроа. QUOTE (inventor @ Oct 1 2015, 09:14)  единственное что непонятно, почему в борланде BCC32 все эти структуры такого размера как мне надо! Потому, что Борланд  с его феерической традиционной кривизной и наплевательством на стандарты. Сваяли в свое время некий "Паскаль" в отсутствие стандарта, и решили повторить "успех" с Си. Я начинал в свое время BCPP 1.0 - ну очень потом, когда поумнел, ругался.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
inventor Как сделать структуру из битовых полей минимального размера? Sep 30 2015, 15:54 kolobok0 Цитата(inventor @ Sep 30 2015, 18:54) Под... Sep 30 2015, 16:10 SSerge А какого размера unsigned int? Правильно, 4 байта.... Sep 30 2015, 16:16   inventor Цитата(kolobok0 @ Sep 30 2015, 22:49) COD... Oct 1 2015, 06:14    scifi Цитата(zltigo @ Oct 1 2015, 09:31) Потому... Oct 1 2015, 06:37     zltigo QUOTE (scifi @ Oct 1 2015, 09:37) Короче,... Oct 1 2015, 10:01      scifi Цитата(zltigo @ Oct 1 2015, 13:01) Но не ... Oct 1 2015, 10:29       zltigo QUOTE (scifi @ Oct 1 2015, 13:29) И нигде... Oct 1 2015, 12:57        scifi Цитата(zltigo @ Oct 1 2015, 15:57) А то, ... Oct 1 2015, 13:09         zltigo QUOTE (scifi @ Oct 1 2015, 16:09) ИМХО, т... Oct 1 2015, 13:17          scifi Цитата(zltigo @ Oct 1 2015, 16:17) Наверн... Oct 1 2015, 13:35           zltigo QUOTE (scifi @ Oct 1 2015, 16:35) Можете ... Oct 1 2015, 13:47            scifi Ну что ж, можно констатировать, что есть как миним... Oct 1 2015, 14:05             zltigo QUOTE (scifi @ Oct 1 2015, 17:05) Кстати,... Oct 1 2015, 14:20              scifi Цитата(zltigo @ Oct 1 2015, 17:20) Я бы н... Oct 1 2015, 14:52               zltigo QUOTE (scifi @ Oct 1 2015, 17:52) Кстати,... Oct 1 2015, 20:17 zltigo QUOTE (inventor @ Sep 30 2015, 18:54) при... Sep 30 2015, 16:20 scifi Цитата(zltigo @ Sep 30 2015, 19:20) Было-... Sep 30 2015, 16:35 ViKo Правильно колобок говорил: паки-паки... Никакие ch... Sep 30 2015, 17:01 kolobok0 Цитата(ViKo @ Sep 30 2015, 20:01) Правиль... Sep 30 2015, 17:16  zltigo QUOTE (kolobok0 @ Sep 30 2015, 20:16) там... Sep 30 2015, 18:02 den_po sizeof(bool) не обязан быть 1 Sep 30 2015, 21:17 ViKo Похоже, битовое поле должно встраиваться в тот тип... Oct 1 2015, 08:58 scifi Цитата(ViKo @ Oct 1 2015, 11:58) Похоже, ... Oct 1 2015, 09:21  ViKo Цитата(scifi @ Oct 1 2015, 12:21) Более т... Oct 1 2015, 09:30   scifi Фигню я сказал. Очевидно, имеется в виду, что бито... Oct 1 2015, 09:41 esaulenka А можно ещё вопрос, раз уж битовые поля вспомнили?... Oct 2 2015, 06:41 zltigo QUOTE (esaulenka @ Oct 2 2015, 09:41) На ... Oct 2 2015, 08:59 esaulenka Под "ширпотребом" я подразумевал little-... Oct 2 2015, 09:32 Artem_Petrik Цитата(esaulenka @ Oct 2 2015, 12:32) Под... Oct 2 2015, 10:48  ViKo Цитата(Artem_Petrik @ Oct 2 2015, 13:48) ... Oct 2 2015, 12:03
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|