- •ТИПЫ ДАННЫХ, ОПРЕДЕЛЯЕМЫЕ ПОЛЬЗОВАТЕЛЕМ
- •Объединения
- •Пример выделения памяти
- •Компилятор не следит за тем, что делается с объединением после присваивания
- •union { int ax;
- •Свойства
- •Допустимые операции
- •Возможные ошибки
- •Назначение
- •Битовые поля (bit fields)
- •Тип данных
- •Нельзя
- •Формат
- ••struct number { unsigned group: 4; // 4 бита от 0 до 15
- •Неименованные поля
- •Поле нулевой длины
- •Свойства
- •Назначение
- •Пример
- •Перечисления (enumeration )
- •Тип данных
- •Формат
- •Пример
- •Пример
- •Свойства
- •Инициализация
- •Инициализация
- •Инициализация
- •Инициализация
- •Основные операции
- •Передача в функции
Битовые поля (bit fields)
Тип данных
•это специальный тип членов структуры, в котором определено, из скольких бит состоит каждое поле
•позволяют работать с отдельными битами и их группами (полями) внутри переменных
•Должны быть объявлены как int или unsigned
Нельзя
•Объявлять вне структур
•Массивы битовых полей
•Применять &
Формат
struct имя_структуры { тип имя1: длина в битах; тип имя2: длина в битах; тип имя3: длина в битах;
. . .
тип имяN: длина в битах; };
// тип - int, unsigned.
•struct number { unsigned group: 4; // 4 бита от 0 до 15
•unsigned department: 3; // 3 бита от 0 до 8
•unsigned course: 3; }; // 3 бита от 0 до 8
• |
// генерация номеров зачеток |
•number fit[90];
•……………………………….
•void FillNumber(number * const doc)
•{ for (int i = 0; i <=99; i++)
•{ doc[i].group = i % 3 + 9;
•doc[i].department = 5;
•doc[i].course = 1; }
• } |
// 1001101001 |
Неименованные поля
•struct { unsigned a1 : 4;
•unsigned : 2; // неиспользуемое
•unsigned a3 : 5;
•unsigned a4 : 2; } prim1;
Поле нулевой длины
•struct { unsigned b1 : 1;
•unsigned : 0;
•unsigned b3 : 5;
•unsigned b4 : 2;
• |
} prim2; |
Свойства
•поля бит могут быть не именованы. Если Имя пропущено, то соответствующее количество бит не используется (пропускается ).
•в структуре могут быть смешаны обычные переменные и поля бит
•длина структуры всегда кратна восьми.
Struct onebit { unsigned one_bit: 1;
} obj;
Назначение
•более компактное хранение объекта