Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ekzamenYazyki_programmirovania.docx
Скачиваний:
15
Добавлен:
25.09.2019
Размер:
794.36 Кб
Скачать

29 Объединения. Определение. Создание. Инициализация. Обращение к отдельным объектам объединения. Создание структурных типов с помощью спецификатора typedef.

Объединение — это переменная, которая может содержать объекты различных типов и размеров. Все требования относительно размеров и выравнивания выполняет компилятор. Объединение можно инициализировать только один значением, причем оно должно соответствовать первому элементу этого объединения. У нас первым элементом расположено поле int, поэтому при инициализации так же должно быть поле int. Объявление объединения (начинается с ключевого слова union) похоже на объявление структуры и в общем виде выглядит так:

union тег {

тип имя-члена;

тип имя-члена;

тип имя-члена;

} переменные-этого-объединения;

Объединения (union)

Внешне похожи на структуры

union box

{ int i;

char c;

long l; ... }

Всё вышеперечисленное для структур справедливо и для объединений. Но для обращение к полю каждый раз доступен только один элемент. Памяти под структуру выделяется столько, сколько занимает самый большой её элемент.

30 Создание динамически связанных структурных типов. Линейный список. Двусвязный список.

31 Потоки ввода-вывода. Понятие потока. Текстовые и двоичные потоки. Стандартные потоки.

Потоки ввода-вывода

Процесс перемещения данных с внешних носителей в оперативную память называется вводом данных, а из памяти на внешние носители – выводом.

Поток – последовательность байт данных. Поток байт, принимаемый программой, называется потоком ввода, а поток, посылаемый программой на устройство, называется потоком вывода. Основное преимущество работы с потоками состоит в том, что потоки являются независимыми от устройства. Программа рассматривает ввод-вывод как работу с непрерывным потоком байт, независимо от их происхождения или места назначения. Каждый поток в C связан с файлом. В этом смысле термин «файл» ассоциируется с различными устройствами и не относится только к файлам, хранящимся на диске.

Файл понимают как промежуточный объект между потоком и реальным физ. устройством, выполняющим ввод-вывод данных. В C не приходится беспокоиться о деталях работы с файлами, т.к. автоматическое взаимодействие между потоками, файлами и устройствами обеспечивают библиотечные функции C и операционная система.

Потоки бывают двух видов: текстовые и двоичные.

Двоичные и текстовые режимы доступа к файлам

Для стандартных и системных функций ввода-вывода возможны два режима доступа к файлам — текстовый и двоичный.

При осуществлении операции ввода-вывода в текстовом режиме

1. При записи информации в файл символ новой строки преобразуется в пару символов CR и LF. При чтении из файла эта пара символов преобразуется обратно в символ \n. В конце файла записывается EOF (0x1A). При считывании информации прочитать находящуюся после EOF не удаётся.

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

Открытие и закрытие потоков

Функции работы с файлами определены в заголовочном файле stdio.h

Указатель на поток

FILE *fp;

Открытие файла

fp=fopen(имя_файла, режим_открытия);

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