time(&t); // функция time () возвращает текущую дату в виде количества секунд
cout <<ctime(&t)<< endl; //функция ctime () возвращает строку, в которую // преобразует текущую дату
cout << clock()/CLOCKS_PER_SEC << endl; //вывод времени работы программы в сек.
};
Результат работы программы:
При завершении программы выводятся текущие дата и время.
Если для работы atexit () вызывается несколько функций, то они выполняются в порядке обратном порядку вызова:
atexit(f1);
atexit(f2); //сначала выполнится f2, затем – f1.
Дополнительные возможности функций
Встраиваемые функции
Функцию можно определить как встроенную с помощью модификатора inline, который рекомендует компилятору вместо обращения к функции помещать ее код непосредственно в каждую точку вызова. Модификатор inline ставится перед типом функции. Он применяется для коротких функций, чтобы снизить накладные расходы на вызов (сохранение и восстановление регистров, передача управления). Директива inline носит рекомендательный характер и выполняется компилятором по мере возможности. Использование inline-функций может увеличить объем исполняемой программы. Определение функции должно предшествовать ее вызовам, иначе вместо inline-расширения компилятор сгенерирует обычный вызов.
// демонстрация inline-функций
#include <iostream.h>
inline double lbstokg (float pounds) // функция конвертирует фунты в килограммы
{
return 0.453592 * pounds;
}
//-------------------------------------------------------------int main()
{
float lbs;
cout << "\n Enter your weight in pounds: ";
cin >> lbs;
cout << "Your weight in kilograms is " << lbstokg (lbs)
<< endl;
return 0;
}
Результаты работы
Enter your weight in pounds: 3.5
Your weight in kilograms is 1.58757
Параметры по умолчанию
Чтобы упростить вызов функции, в ее заголовке (либо в прототипе, либо при определении функции) можно указать значения параметров по умолчанию:
int f (int a, int b=0);
void f1 (int, int=20*5, char* =0);
void err (int errValue = errno);
……
f(100); f(a,1);
f1(a); f1(a, 10); f1(a, 10, “Vasia”);
//f1(a, , “Vasia”); неверно!!!!!
При передаче параметров по умолчанию необходимо руководствоваться следующими правилами:
· значение по умолчанию может быть задано либо в прототипе, либо при определении функции, но только в одном месте один раз;
· в качестве умалчиваемых значений должны быть либо константы, либо выражения, либо глобальные переменные;
· параметры со значениями по умолчанию должны быть последними в списке;
· если при вызове функции опустили аргумент для параметра по умолчанию, то не надо писать аргумент и для всех оставшихся в списке;
· в качестве параметра по умолчанию можно использовать и строку.
Параметры по умолчанию должны быть последними в списке параметров и могут опускаться при вызове функции. Если при вызове функции аргумент опущен, должны быть опущены и все аргументы, следующие за ним.
// демонстрация функции с параметрами по умолчанию
#include <iostream.h>
void repchar(char='*', int=45); //прототип функции с параметрами по умолчанию
int main()
{
repchar(); //вызов функции с двумя аргументами по умолчанию //печать 45 символов «звездочка»
repchar('='); //вызов функции с заданным первым аргументом //печать 45 знаков «равно»
repchar('+', 30); //вызов функции с двумя заданными аргументами //печать 30 знаков «плюс»
return 0;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.