Определяющее-тип-имя идентификатор
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
{
;
;
…………
;
};
Определение типа структуры начинается с ключевого слова struct и содержит список объявлений, заключенных в фигурные скобки. За словом struct следует имя типа, называемое тегом структуры (tag – ярлык, этикетка). Элементы списка объявлений называются членами структуры или полями. Каждый элемент списка имеет уникальное для данного структурного типа имя. Однако следует заметить, что одни и те же имена полей могут быть использованы в различных структурных типах.
Структуры и функции
Структуры могут быть переданы в функцию в качестве аргументов и могут служить в качестве возвращаемого функцией результата.
Существует три способа передачи структур функциям:
— передача компонентов структуры по частям;
— передача целиком структуры;
— передача указателя на структуру.
Битовые поля
В противоположность другим компьютерным языкам С имеет возможность, называемую битовыми полями, позволяющую работать с отдельными битами. Битовые поля полезны по нескольким причинам. Ниже приведены три из них:
1. Если ограничено место для хранения информации, можно сохранить несколько логических (истина/ложь) переменных в одном байте.
2. Некоторые интерфейсы устройств передают информацию, закодировав биты в один байт.
3. Некоторым процедурам кодирования необходимо получить доступ к отдельным битам в байте.
Хотя все эти функции могут выполняться с помощью битовых операторов, битовые поля могут внести большую ясность в программу.
Метод использования битовых полей для доступа к битам основан на структурах. Битовое поле, на самом деле, — это просто особый тип структуры, определяющей, какую длину имеет каждый член. Стандартный вид объявления битовых полей следующий:
struct имя структуры {
тип имя1: длина;
тип имя2: длина;
…
тип имяN: длина;
}
Объединения C++ очень похожи на структуры, за исключением того, как C++ хранит их в памяти; кроме того, объединение может хранить значение только для одного элемента в каждый момент времени.
Объединение представляет собой структуру данных, подобную структуре C++, и состоит из частей, называемых элементами.
1-Объединение определяет шаблон, с помощью которого программы далее объявляют переменные.
2-Для обращения к определенному элементу объединения ваши программы используют оператор C++ точку.
3-Чтобы изменить значения элемента объединения внутри функции, ваша программа должна передать переменную объединения в функцию с помощью адреса.
4-Анонимное объединение представляет собой объединение, у которого нет имени (тэга).
Как вы узнаете, объединения очень похожи на структуры C++, однако способ, с помощью которого C++ хранит объединения, отличается от способа, с помощью которого C++ хранит структуры.
Перечисления
Перечислением называется список именованных целочисленных констант, называемых перечислителями. Переменная данного типа может принимать значение одной из перечисленных констант, ссылаясь на эту константу по имени.
Выражения
Статьи к прочтению:
РЕАЛЬНЫЕ ТИПЫ ФИГУР//Как определить свою?//Что носить?
Похожие статьи:
-
Концепция типа данных Основная цель любой программы состоит в обработке данных. Данные различного типа хранятся и обрабатываются по-разному. В любом…
-
Bool MoveNext() При каждом вызове метода MoveNext () текущее положение перечислителя смещается к следующему элементу коллекции. Этот метод возвращает…