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

Битовые поля - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Структуры, содержащие указатели на самих себя http://www.cyberforum.ru/cpp-beginners/thread424820.html
Как вообще возможно существование структур, содержащих указатели на самих себя? struct mystruct{ int a; char ch; mystruct* sptr; // Указатель на объекты типа mystruct }; Например,...
C++ Объясните пожалуйста Получилось довольно много вопросов, накопилось пока читал книгу. Отблагодарю, как смогу за любую информацию :) Вот они: Как вообще возможно существование структур, содержащих указатели на самих... http://www.cyberforum.ru/cpp-beginners/thread424813.html
Графическая библиотека в Visual Studio 2008 C++
Здравствуйте, у меня такой вопрос: как подключить в Visual Studio 2008 графическую библиотеки и вообще возможно ли это?
C++ В консольном выводе выделить разными цветами элементы матрицы
Доброй ночи всем. Я делаю задачу в Visual C++ 2008 Express. У меня вот какое дело. Выводится на экран матрица M на N. Это типа поле. По ней перемещаются юниты, 3 разных юнита. Я хочу...
C++ Удаление данных из файла http://www.cyberforum.ru/cpp-beginners/thread424795.html
Внезапно понял что не знаю как удалить данные из файла. int main() { fstream file("file.txt",fstream::write,fstream::read); if(!file) exit(1); int temp=0; string...
C++ Не получается доделать программу! Необходимо вывести результат рассчётов в последнюю строку и последний столбец матрицы. Само задание : Вывести исходные данные в первые 24 строки и первые 7 столбцов. Вычислить среднее арифметическое значение каждой строки и записать его в 8-ой столбец, а так же среднее арифметическое ... подробнее

Показать сообщение отдельно
Tamoren
0 / 0 / 0
Регистрация: 08.01.2012
Сообщений: 37

Битовые поля - C++

09.01.2012, 05:21. Просмотров 8143. Ответов 19
Метки (Все метки)

В приложении 1 есть пример использования битовых полей. В выделенной строке структуре присваивается бит, полученный из функции. (Кстати, как функция может вернуть БИТ?) Чтобы обеспечить возможность такого присваивания, функция должна возвращать значение такого же типа, как принимающий его объект структуры. Почему же возможно обойтись и без этого, так, как описано в приложении 1? По аналогии написал программу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    struct {
        binary digit0:1;
        binary digit1:1;
        binary digit2:1;
        binary digit3:1;
        binary digit4:1;
        binary digit5:1;
        binary digit6:1;
        binary digit7:1;
    } str;
    
    str = 'A';
    cout << "A: ";
 
    if(str.digit0) cout << 1;
    if(str.digit1) cout << 1;
    if(str.digit2) cout << 1;
    if(str.digit3) cout << 1;
    if(str.digit4) cout << 1;
    if(str.digit5) cout << 1;
    if(str.digit6) cout << 1;
    if(str.digit7) cout << 1;
Но она не компилируется с ошибкой
Код
C2679: binary '=' : no operator defined which takes a right-hand operand of type 'const char' (or there is no acceptable conversion)
В приложении 2 приведен код программы использующей объединение для перестановки двух байтов (sb.ch[0] и sb.ch[1]) в рамках короткого целого значения (sb.num = 15). 15 == 1111d, тогда в sb.ch[0] будет 00000000, а в sb.ch[1] - 00001111. Но тогда при выводе начального состояния битов будет выведено 00001111 00000000, а не 00000000 00001111. Почему же все-таки получается так, как описано в приложении 2?

И существует ли способ объявить битовое поле с помощью перечисления?
0
Миниатюры
Битовые поля   Битовые поля  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru