Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
opisanie_tipov_dannykh.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
67.89 Кб
Скачать
  1. Union - объединение

    1. Определение внешнего вида значений

нет

    1. Определение диапазона и возможных зарезервированных констант:

Диапазон значений:

Определяется только для каждого поля

Обусловлен базовым типом каждого поля непосредственно

Константы:

Определяется только для каждого поля

Обусловлен базовым типом каждого поля непосредственно

    1. Определение операций

Определяется только для каждого поля

Обусловлен базовым типом каждого поля непосредственно

    1. Определение процедур и функций, которые могут применяться к этому типу:

Обусловлен базовым типом каждого поля непосредственно

union DATATYPE // Объявление нового типа union («объединение») – DATATYPE

{

char ch; //поле типа char - 1 байт

int i; //поле типа int - 2 байта

float f; //поле типа float - 4 байта

double d; //поле типа double - 8 байт

};

При последующем объявлении переменных, относящихся к DATATYPE, в Си обязательно использование ключевого слова union, в С++ - не обязательно.

union DATATYPE var1; // объявление var2 типа DATATYPE (union) в Си

DATATYPE var1; // объявление var1 типа DATATYPE (union) в С++

Каждое поле, хранящееся в union-е, может содержать любое значение заданного типа.

var1.i = 6; // Использовать переменную как целое (int)

var1.d = 5.327; // Использовать переменную как дробную (double)

Получить размер любой переменной, относящейся к DATATYPE можно через функцию sizeof.

Для var1 размер = sizeof(var1);

    1. Ввод/вывод:

Операции ввода/вывода для каждого поля эквивалентны операциям, предусмотренных для типов этих полей.

Обращение происходит через «.» (точку).

    1. Представление значений в памяти ЭВМ:

Каждый новый тип, описанный как union, занимает в памяти число байт, равное размеру максимального поля этого типа. Так, например, описанный выше тип DATATYPE занимает 8 байт в памяти, т.к. его поле максимальной длины – d (double занимает в памяти 8 байт).

  1. Enum – перечисление

    1. Определение внешнего вида значений

Используется для описания какого-либо множества значений. По своей сути – множество констант.

    1. Определение диапазона и возможных зарезервированных констант:

Диапазон значений:

нет

Константы:

Задаются самостоятельно

Пример: множество «стороны света».

enum cardinal_dirs { north, west, east, south };

    1. Определение операций

После того, как определено перечисление, можно создавать переменные нового типа и работать с ними:

cardinal_dirs ch = north;

В данном случае переменные типа cardinal_dirs могут принимать только четыре значения: north, south, east, west. Элементы в перечислении нумеруются от нуля. Т.е. north = 0, east = 1, south = 2, west = 3. Вместо перечисления можно было создать четыре константы:

const int north = 0;

const int east = 1;

const int south = 2;

const int west = 3;

    1. Определение процедур и функций, которые могут применяться к этому типу:

sizeof()

    1. Ввод/вывод:

нет.

    1. Представление значений в памяти ЭВМ:

В памяти cardinal_dirs также будет записана как ряд констант: четыре целые значения, по 2 байта каждое (итого: 2 байта * 4 элемента = 8 байт занимают все элементы). Имена (north/east/south/west) определены только в пределах исходного кода программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]