- •Создание простой структуры.
- •Инициализация структуры.
- •Передача структур в функции.
- •Описание массива структур.
- •Определение элементов массива структур.
- •Вложенные структуры. Иногда бывает удобно, когда одна структура содержит другую.
- •Описание и инициализация указателя на структуру.
- •Доступ к элементу структуры при помощи указателя.
- •Передача информации о структурах функциям. Использование элементов структуры.
- •Передача информации о структурах функциям. Использование элементов структуры.
- •Передача информации о структурах функциям. Использование адреса структуры.
- •Передача информации о структурах функциям. Использование массива.
- •Имя массива можно использовать для передачи в функцию указателя на первую структуру в массиве.
- •Затем можно использовать арифметическую операцию над указателем, чтобы передвигать его на последующие структуры в массиве.
- •Структуры и битовые поля.
- •Структуры. Их дальнейшее использование.
- •Объединения.
- •Объединения: синтаксис и правила.
- •Создание простого объединения.
- •Вспомогательные средства.
- •Использование typedef.
- •Сложные формы данных.
- •Использование enum.
Использование enum.
Перечисляемый тип данных enum имеет единственное назначение — сделать текст программы более читаемым.В общем, объявление перечисляемого типа выглядит так:
enum поле_тега { значение1,. . .значениеN } переменная;
Перечисляемые типы данных позволяют связать в единый тип легко понятные мнемонические идентификаторы: например, Это помогает созданию самодокументирующегося текста программы.
( я думаю пример не обязательно)
К примеру, вместо цикла, пробегающего значения от 0 до 4, можно написать цикл, имеющий диапазон от Понедельника до Пятницы (Monday — Friday):
enum eweekdays { Monday, Tuesday, Wednesday, Thursday, Friday };
/* Объявление переменной типа enum в С */
enumeweekdaysewToday;
/* To же объявление в C++ */
eweekdaysewToday;
/* Без перечисляемого типа */
for(i = 0; i<= 4; i++)
…
…
…
/* С использованием перечисляемого типа */
for(ewToday = Monday; ewToday <= Friday; ewToday++)
Как исторически сложилось, компиляторы С не делают различия между типами int и enum. Это означает, что программа может присвоить целое значение перечисляемому типу. При отсутствии явного приведения типа в C++ компилятор в подобной ситуации генерирует предупреждение:
/* Допустимо в С; недопустимо в C++ */
ewToday = 1;
/* Решение проблемы в C++ */
ewToday = (eweekdays)1;
Перечисляемые списки всегда начинаются с нуля (если не задано другого целого значения).