Russian Qt Forum
Ноябрь 23, 2024, 22:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как правильно описать C++Struct в программе...  (Прочитано 3139 раз)
Student2011
Гость
« : Май 11, 2011, 14:20 »

Здравствуйте. Я новичок в С++, у меня вот появился вопрос...

В программе необходимо описать структуру С++ с 10 полями. 
1) Суммарно все поля структуры должны хранить 32 бит информации,
2) Под каждое поле должно быть зарезервировано определенное количество бит,
3) Все поля структуры целочисленные - integer и неотрицательные - unsigned.

Т.е. само описание структуры будет выглядеть примерно так....

struct ParamF
{
  unsigned int TimeOut;   //5 бит
  unsigned int IteracF;   //1 бит
  unsigned int param1;   //3 бит
  unsigned int param2;   //3 бит
  unsigned int param3;   //3 бит
  unsigned int param4;        //3 бит
  unsigned int param5;   //3 бит
  unsigned int param6;        //3 бит
  unsigned int param7;   //3 бит
  unsigned int ResultF;   //5 бит
};

вопрос в том, как указать в описании структуры, что под каждое поле зарезервировано определенное количество бит.

Из того, что я знаю по С++, мне известен только способ выделения памяти под переменную с помощью оператора NEW

например         int *param1 = new int(3);

но это можно сделать только динамически, насколько я понимаю, внутри функций/процедур,

а мне нужно определить количество байт для каждого параметра имененно в описании структуры, статически.


Подскажите, пожалуйста, есть способ уже в описании структуры описать сколько бит заразервировано под каждый параметр структуры?
Может будет лучше работать не с типом int, а с типом char, который неверное больше подходит для хранения битовых данных? Но и под char непонятно как статически выделить определенной количестов бит.
Записан
brankovic
Гость
« Ответ #1 : Май 11, 2011, 14:34 »

Код:
struct ParamF
{
  unsigned int TimeOut  : 5;
  unsigned int IteracF  : 1;
  unsigned int param1   : 3;
  ...
};
Записан
Student2011
Гость
« Ответ #2 : Май 11, 2011, 15:01 »

Спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 20.