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

Вызовы с переменным числом аргументов

При вызове функции с переменным числом аргументов нужно в вызове функции просто задать произвольное число аргументов. Если есть объявление прототипа функции, то переменное число аргументов может быть задано помещением запятой с многоточием (,...) в конце списка формальных параметров или списка типов аргументов (см. Раздел 4.5, "Объявления функций"). Вызов функции должен включать один аргумент для каждого имени типа, объявленного в списке формальных параметров или списке типов аргументов.

Аналогично, список формальных параметров (или список идентификаторов в старой форме) в определении функции может заканчиваться запятой с многоточием для индикации переменного числа аргументов. Дополнительная информация о форме списка формальных параметров содержится в Разделе 7.2, "Определения функций".

Все заданные в вызове функции аргументы помещаются в стек. Число объявленных для функции формальных параметров определяет число аргументов, которые будут взяты из стека и присвоены формальным параметрам. Пользователь сам отвечает за поиск любых дополнительных аргументов в стеке и за определения количества заданных аргументов. Информация о макросах, которые позволяют компактно обрабатывать переменное число аргументов, содержится в Вашем Руководстве по компилятору.

Определение значений по умолчанию

Обеспечить значения по умолчанию для параметров функции очень легко. Вы просто присваиваете значение параметру с помощью оператора присваивания С++ прямо при объявлении функции, как показано ниже:

void some_function(int size=12, float cost=19.95) //---->Значения по умолчанию

{      // Операторы функции  }

Следующая программа DEFAULTS. CPP присваивает значения по умолчанию параметрам a, b и c внутри функции show_parameters. Затем программа четыре раза вызывает эту функцию, сначала не указывая параметров вообще, затем указывая значение только для а, потом значения для а и b и, наконец, указывая значения для всех трех параметров:

#include <iostream.h>

void show__parameters (int a=1, int b=2, int c=3)

{      cout << "a" << a << " b " << b << " с " << с << endl;  }

void main(void)

{      show_parameters();     show_parameters(1001);     show_parameters(1001, 2002);     show_parameters(1001, 2002, 3003);  }

24Стандартные библиотечные функции для организации ввода-вывода информации (getc, gets, scanf, putc, puts, printf). Спецификации преобразований для данных различных типов.

stdin - стандартный ввод; stdout - стандартный вывод; stderr - стандартные ошибки; stdaux - стандартный порт; stdрrn - стандартная печать.

25Работа с файлами в C++

Файлом называют способ хранения информации на физическом устройстве. Файл — это понятие, которое применимо ко всему — от файла на диске до терминала.

В C++ отсутствуют операторы для работы с файлами. Все необходимые действия выполняются с помощью функций, включенных в стандартную библиотеку. Они позволяют работать с различными устройствами, такими, как диски, принтер, коммуникационные каналы и т.д. Эти устройства сильно отличаются друг от друга. Однако файловая система преобразует их в единое абстрактное логическое устройство, называемое потоком.

Текстовый поток — это последовательность символов. При передаче символов из потока на экран, часть из них не выводится (например, символ возврата каретки, перевода строки).

Двоичный поток — это последовательность байтов, которые однозначно соответствуют тому, что находится на внешнем устройстве.