Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2014, 15:25   #1
ka11n
Пользователь
 
Регистрация: 05.05.2009
Сообщений: 20
Вопрос Объясните фрагмент кода

Не знаком с языком с/с++.
Вопрос - что значат цифры после ":" в описании структуры?

Код:
typedef struct _Q_FORMULA
{
	MY_UCHAR	m_ucQSysType:3;
	MY_UCHAR	m_fRes3:1;
	MY_UCHAR	m_fUseG1:1;
	MY_UCHAR	m_fUseG2:1;
	MY_UCHAR	m_fUseG3:1;
	MY_UCHAR	m_fRes7:1;
} Q_FORMULA;
ka11n вне форума Ответить с цитированием
Старый 03.09.2014, 15:32   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Количество бит.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 03.09.2014, 19:35   #3
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

http://msdn.microsoft.com/ru-ru/library/ewwyfdbe.aspx
Объясняется с рисунками. Кстати, интересную информацию там нашел (правда относится только к микрософту) про поля нулевой длины.
rrrFer вне форума Ответить с цитированием
Старый 04.09.2014, 11:20   #4
ka11n
Пользователь
 
Регистрация: 05.05.2009
Сообщений: 20
По умолчанию

Т.е. это структура занимает 8 бит (1 байт)?
Спасибо, теперь все ясно.
А то я не мог понять, как эта структура помещалась в заданный массив байт, учитывая что MY_UCHAR это unsigned char (1 байт)

Последний раз редактировалось ka11n; 04.09.2014 в 11:24.
ka11n вне форума Ответить с цитированием
Старый 04.09.2014, 16:27   #5
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Т.е. это структура занимает 8 бит (1 байт)?
да.
Код:
union A {
  struct B {
    int a : 1;
    int b : 5; 
  } mask;
  int val;
};
// ..
A a;
a.val = 123;
a.mask.a = 0; // изменяю младший бит val.
a.mask.b = 2; // изменяю второй, третий, ... шестой биты.
МОжет пригождаться когда например двоичные данные расколупать надо - например сетевой пакет, какой-нибудь.

Последний раз редактировалось rrrFer; 04.09.2014 в 16:32.
rrrFer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правильно написать фрагмент кода. sinh Общие вопросы Delphi 4 28.06.2013 21:03
Фрагмент кода по алгоритму Студент8565 Помощь студентам 4 12.05.2013 17:42
Удалить фрагмент из кода DeadWarlock Общие вопросы Delphi 2 03.02.2012 00:26
Фрагмент кода программы Delphi Начинающий програм Помощь студентам 2 21.01.2012 23:41
Фрагмент кода С++ Роман Кор Общие вопросы C/C++ 6 22.02.2009 19:25