void err(int errValue = errno); // errno – ауқымды // айнымалы ... // f функциясын шақыру нұсқалары: f(100); f(a, 1);
// f1 функциясын шақыру нұсқалары: f1(a); f1(a, 10); f1(a, 10, "Vasia"); f1(a,,"Vasia") // бұл дұрыс емес! Параметрлерінің саны айнымалы функциялар Егер функцияның формалды параметрлерінің тізімі көп нүктемен аяқталса,
оны шақырған кезде осы жерде тағы бірнеше параметр көрсетуге болатынын
білдіреді. Бұл параметрлер үшін типтердің сəйкестігін тексеру орындалмайды,
char жəне
short типтері
int ретінде, ал
fl oat типі
double ретінде беріледі.
Мысал ретінде
printf функциясын келтіруге болады, оның прототипі келесі
түрде беріледі:
int printf (const char*, ...); Жоғарыдағы мысал функцияны шақыру кезінде кем дегенде бір
char* типті параметр болуын жəне басқа параметрлердің болуы немесе болмауы
мүмкін екендігін көрсетеді:
printf("Бастапқы мəліметтерді енгізіңіз"); // бір параметр printf("Қосынды: %5.2f теңге", sum); // екі параметр printf("%d %d %d %d", a, b, c, d);// бес параметр Функция ішіндегі міндетті емес параметрлерге қол жеткізу үшін
тақырыптық файлында орналасқан
va_start, va_arg жəне
va_ end кітапхана макростары қолданылады. Бұл макростар 5-ші қосымшада
сипатталған.
Компиляторда типтерді бақылауға қажетті ақпарат жоқ болғандықтан,
параметрлерінің саны айнымалы функциялардың орнына келісім бойынша
берілген параметрлерді немесе асыра жүктелген функцияларды («Функ-
цияларды асыра жүктеу», 86 б.) пайдаланған жөн, бірақ саны айнымалы
параметрлерді қолдану жақсы нəтиже беретін жағдайларды да көрсетуге
болады.