Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AlexTorrin
3 / 3 / 0
Регистрация: 07.05.2012
Сообщений: 27
#1

Поля - C++

11.05.2012, 17:14. Просмотров 292. Ответов 2
Метки нет (Все метки)

Здравствуйте.
C++
1
2
3
4
5
6
7
8
9
10
struct sreg {
              unsigned enable : 1;
              unsigned page : 3;
              unsigned : 1;        // не используется
              unsigned mode : 2;
              unsigned : 4;        // не используется
              unsigned access : 1;
              unsigned length : 1;
              unsigned non_resident : 1;
        };
Не могли бы вы объяснить, что это? Код взят из книги Страуструпа.
Что такое структура и зачем она нужна я знаю, но что означает "поля"? И почему у одних "полей" названия есть у других нет? Причем здесь unsigned? И как это использовать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2012, 17:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поля (C++):

Битовые поля. Поля без типа и имени - C++
Вчера сделал очень интересную и болезненную ошибку (с точки зрения времени, так как искал я ее долго)... представьте структуру (битовое...

Копировать значение поля m_moo в значение поля m_moo класса foo - C++
А что означает запись? Foo1(Foo1 const& foo):m_moo(foo.moo) то что это к.копирования понятно.Не понятно,зачем список инициализации.... ...

Поля на С++ - C++
Дана задача: надо ввести поле на C++, потом поделить его на 4-ре квадрата, потом поделить эти квадраты, каждый еще на 4, потом еще и...

Поля битов - C++
Не могу разобраться в полях. Пытаюсь создать структуру полей битов для хранения даты какого-нибудь события. Две функции: 1-я устанавливает...

Битовые поля - C++
Ребят, подкиньте, пожалуйста, инфу по битовым полям или ссылочку на ресурс. Может у кого-нить лекции в электронном варианте есть или...

Битовые поля - C++
Подскажмте пожалуйста новичку, что такое битовые поля.Уже перечитываю раз 11ый, а никак понять не могу. Скажите пожалуйста популярным...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
11.05.2012, 17:37 #2
гугли "битовые поля".

как пример использования:

множество флагов (если прям ну ваще жалко памяти по 1 байту на каждый флаг),а так отдаем по 1 биту.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct data_t {
 
    unsigned flag1: 1;
    unsigned flag2: 1;
    unsigned flag3: 1;
 
    // ...
};
 
data_t d;
 
// ...
 
d.flag1 = 1;
d.flag2 = 0;
как другой пример, иногда удобно брать отдельные биты и пары битов из переменной.
в данном случае рассмотрим содержание в 1 объединении информации о старшем и младшем байте числа short (у меня оно 2-х байтное).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
union _SHORT {
 
    short var;
 
    struct {
 
        unsigned low: 8;
        unsigned high: 8;
 
    };
 
};
 
int main(int argc, char *argv[]) {
 
    _SHORT s;
    s.var = 0xFFFA;
 
    std::cout << std::hex << s.high << ' ' << s.low;
 
}
выведется "ff fa"
1
AlexTorrin
3 / 3 / 0
Регистрация: 07.05.2012
Сообщений: 27
11.05.2012, 17:42  [ТС] #3
OstapBender, Спасибо большое!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2012, 17:42
Привет! Вот еще темы с ответами:

Битовые поля - C++
struct TKeyFlags { int Old :1; int :6; int ...

Поля класса - C++
здравствуйте ) извините заранее если глупый вопрос :sorry: я просто новичок) class mycl { public: char a, b; }; ...

Поля MZ файла - C++
Добрыдень. У меня стоит задача разработать линковщик, который формирует MZ файлы и, сколько бы я не гуглил, повсюду натыкаюсь лишь на...

битовые поля - C++
пользователь вводит с клавиатуры 2 беззнаковых длинных целых числа a, b. Вывести на консоль множества A, B, которые представляют битовые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru