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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Структуры, содержащие указатели на самих себя http://www.cyberforum.ru/cpp-beginners/thread424820.html
Как вообще возможно существование структур, содержащих указатели на самих себя? struct mystruct{ int a; char ch; mystruct* sptr; // Указатель на объекты типа mystruct }; Например, если нам нужно вычислить объем, занимаемый mystruct в памяти, получается рекурсия!
C++ Объясните пожалуйста Получилось довольно много вопросов, накопилось пока читал книгу. Отблагодарю, как смогу за любую информацию :) Вот они: Как вообще возможно существование структур, содержащих указатели на самих себя? struct mystruct{ int a; char ch; mystruct* sptr; // Указатель на объекты типа mystruct }; http://www.cyberforum.ru/cpp-beginners/thread424813.html
Графическая библиотека в Visual Studio 2008 C++
Здравствуйте, у меня такой вопрос: как подключить в Visual Studio 2008 графическую библиотеки и вообще возможно ли это?
C++ В консольном выводе выделить разными цветами элементы матрицы
Доброй ночи всем. Я делаю задачу в Visual C++ 2008 Express. У меня вот какое дело. Выводится на экран матрица M на N. Это типа поле. По ней перемещаются юниты, 3 разных юнита. Я хочу пройденные пути закрашивать цветами. Например там, где был 1-й юнит красным, там где 2-й черным и там где 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 buf="с++" ...
C++ Не получается доделать программу! Необходимо вывести результат рассчётов в последнюю строку и последний столбец матрицы. Само задание : Вывести исходные данные в первые 24 строки и первые 7 столбцов. Вычислить среднее арифметическое значение каждой строки и записать его в 8-ой столбец, а так же среднее арифметическое каждого столбца и записать в 25 строку. Отпечатать полученную матрицу в общепринятом виде. Имя матрицы и размеры : S(25,8) Программа реализованна, за исключением вывода результата в необходимую... подробнее

Показать сообщение отдельно
Tamoren
0 / 0 / 0
Регистрация: 08.01.2012
Сообщений: 37
09.01.2012, 21:36  [ТС]     Битовые поля
Цитата Сообщение от Evg Посмотреть сообщение
размер структуры равен одному байту
Цитата Сообщение от Evg Посмотреть сообщение
функцию, которая возвращает структуру размером 1 байт
Так пусть возвращает, на здоровье! Но если мы захотим этот байт присвоить структуре из битовых полей, мы должны быть уверены, что возвращаемые функцией данные размером в байт такого же типа, как и структура из битовых полей. Чтобы доказать, что эта структура должна получать данные не абы какого типа, я и написал программу, в которой присваивал такой же структуре константу типа char размером в байт. Получилась ошибка. Значит функция get_port_status() должна возвращать структуру такого же типа, как и принимающая.

Цитата Сообщение от Evg Посмотреть сообщение
Биты в принципе не могут идти слева направо или справа налево
Гм... я не правильно выразился. Вот, здесь объявляются битовые поля a,b,c,d (именно в этом порядке), которые занимают вместе 1 байт. Причем в этом байте они расположены в обратном порядке (см. ссылку). Кстати, по ссылке на little-endian самую первую (левую) позицию занимает самое последнее битовое поле!

В общем получается (исходя из результатов программы), что в памяти идет ch[1], а потом ch[0]. И вовсе не так, как указано на рисунке (см. приложение). Всё, я запутался

Есть перечисление:
C++
1
2
3
4
    enum binary {
        Zero,
        One
    };
Можно ли с его помощью объявить структуру? Например так?
C++
1
2
3
4
5
6
7
8
9
10
    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;
 
Текущее время: 06:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru