Определяющее-тип-имя идентификатор
Typedef.
В пределах области действия описания со спецификатором typedef каждыйидентификатор, являющийся частью любого описателя в этом описании,становится синтаксически эквивалентным ключевому слову, имеющему тоттип, который ассоциирует с идентификатором в описанном в п. 17.4 смысле.Например, после описаний
typedef int miles, *klicksp; typedef struct { double re, im; } complex;
конструкции
miles distance; extern klicksp metricp; complex z, *zp;
становятся законными описаниями; при этом типом distance является int,типом metricp - "указатель на int", типом z - специфицированнаяструктура и типом zp - указатель на такую структуру.
Спецификатор typedef не вводит каких-либо совершенно новых типов, атолько определяет синонимы для типов, которые можно было быспецифицировать и другим способом. Так в приведенном выше примерепеременная distance считается имеющей точно такой же тип, что и любойдругой об'ект, описанный в int.
![]() |
Определение структуры
Структура – тип данных, задаваемый пользователем. В общем случае при работе со структурами следует выделить четыре момента:
- объявление и определение типа структуры,
- объявление структурной переменной,
- инициализация структурной переменной,
- использование структурной переменной.
Определение типа структуры представляется в виде
struct ID
{
<тип> <имя 1-го элемента>;
<тип> <имя 2-го элемента>;
…………
<тип> <имя последнего элемента>;
};
Определение типа структуры начинается с ключевого слова struct и содержит список объявлений, заключенных в фигурные скобки. За словом struct следует имя типа, называемое тегом структуры (tag – ярлык, этикетка). Элементы списка объявлений называются членами структуры или полями. Каждый элемент списка имеет уникальное для данного структурного типа имя. Однако следует заметить, что одни и те же имена полей могут быть использованы в различных структурных типах.
Структуры и функции
Структуры могут быть переданы в функцию в качестве аргументов и могут служить в качестве возвращаемого функцией результата.
Существует три способа передачи структур функциям:
- передача компонентов структуры по частям;
- передача целиком структуры;
- передача указателя на структуру.
Битовые поля
В противоположность другим компьютерным языкам С имеет возможность, называемую битовыми полями, позволяющую работать с отдельными битами. Битовые поля полезны по нескольким причинам. Ниже приведены три из них:
1. Если ограничено место для хранения информации, можно сохранить несколько логических (истина/ложь) переменных в одном байте.
2. Некоторые интерфейсы устройств передают информацию, закодировав биты в один байт.
3. Некоторым процедурам кодирования необходимо получить доступ к отдельным битам в байте.
Хотя все эти функции могут выполняться с помощью битовых операторов, битовые поля могут внести большую ясность в программу.
Метод использования битовых полей для доступа к битам основан на структурах. Битовое поле, на самом деле, - это просто особый тип структуры, определяющей, какую длину имеет каждый член. Стандартный вид объявления битовых полей следующий:
struct имя структуры {
тип имя1: длина;
тип имя2: длина;
...
тип имяN: длина;
}
Объединения C++ очень похожи на структуры, за исключением того, как C++ хранит их в памяти; кроме того, объединение может хранить значение только для одного элемента в каждый момент времени.
Объединение представляет собой структуру данных, подобную структуре C++, и состоит из частей, называемых элементами.
1-Объединение определяет шаблон, с помощью которого программы далее объявляют переменные.
2-Для обращения к определенному элементу объединения ваши программы используют оператор C++ точку.
3-Чтобы изменить значения элемента объединения внутри функции, ваша программа должна передать переменную объединения в функцию с помощью адреса.
4-Анонимное объединение представляет собой объединение, у которого нет имени (тэга).
Как вы узнаете, объединения очень похожи на структуры C++, однако способ, с помощью которого C++ хранит объединения, отличается от способа, с помощью которого C++ хранит структуры.
Перечисления
Перечислением называется список именованных целочисленных констант, называемых перечислителями. Переменная данного типа может принимать значение одной из перечисленных констант, ссылаясь на эту константу по имени.
Выражения