Функции в С++
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: налоги в россии, отчет по практике
| Добавил(а) на сайт: Lewjov.
Предыдущая страница реферата | 2 3 4 5 6 7 8 9 10 11 12 | Следующая страница реферата
}
}
Функцию ошибок можно определить так:
#include
void error(int n ...)
/*
"n" с последующим списком char*, оканчивающихся нулем
*/
{
va_list ap;
va_start(ap,n); // раскрутка arg
for (;;) {
char* p = va_arg(ap,char*);
if(p == 0) break;
cerr << p << " ";
}
va_end(ap); // очистка arg
cerr << "n";
if (n) exit(n);
}
Первый из va_list определяется и инициализируется вызовом va_start(). Макрос va_start получает имя va_list"а и имя последнего формального параметра как параметры. Макрос va_arg используется для выбора неименованных параметров по порядку. При каждом обращении программист должен задать тип; va_arg() предполагает, что был передан фактический параметр, но обычно способа убедиться в этом нет. Перед возвратом из функции, в которой был использован va_start(), должен быть вызван va_end(). Причина в том, что va_start() может изменить стек так, что нельзя будет успешно осуществить возврат; va_end() аннулирует все эти изменения.
Указатель на Функцию
С функцией можно делать только две вещи: вызывать ее и брать ее адрес. Указатель, полученный взятием адреса функции, можно затем использовать для вызова этой функции.
Например:
void error(char* p) { /* ... */ }
void (*efct)(char*); // указатель на функцию
Рекомендуем скачать другие рефераты по теме: рефераты бесплатно скачать, реферат значение.
Категории:
Предыдущая страница реферата | 2 3 4 5 6 7 8 9 10 11 12 | Следующая страница реферата