c. variabel argumenter

, nogle gange, du kan komme i en situation, hvor vil du have en funktion, som kan tage variable række argumenter, dvs. parametre, i stedet for forud fastlagt antal parametre.c - programmeringssprog, giver en løsning på denne situation, og du får lov til at definere en funktion, som kan acceptere variabelt antal parametre, på grundlag af deres krav.følgende eksempel viser de definition af en sådan funktion.,, int funktion (int,...){....} int main() {funktion (1, 2, 3); funktion (1, 2, 3, 4)), skal det bemærkes, at den funktion, func(), har det sidste argument, som ellipses, dvs. tre forguder (...) og en lige før den ellipses er altid et, int, som repræsenterer det samlede antal variable argumenter blev vedtaget.at anvende sådanne funktioner, er du nødt til at gøre brug af stdarg. h, headerfilen, der giver de funktioner og har til at gennemføre funktionaliteten af variable argumenter og følge de i betragtning af foranstaltninger og minus,,,,, definere en funktion med sine sidste parameter, som ellipses og en lige før den ellipses er altid et, int, som repræsenterer den række argumenter.,,,, skabe en, va_list, type variabel i funktion definition.denne type er defineret i stdarg. h headerfilen.,,,,, int parameter, og va_start, makro - til at nulstille, va_list, variable argument liste.de makroøkonomiske va_start er defineret i stdarg. h headerfilen.,,,,, va_arg, makro - og va_list, variable adgang til hver post i argument liste.,,,,,,, så brug en makro -, va_end, at rense hukommelsen, der er tildelt, va_list, variable.,,,,,,, så lad os følge ovennævnte foranstaltninger og skrive en enkelt funktion, som kan tage variablen antal parametre og vende tilbage til deres gennemsnitlige −,,&#omfatter < stdio. h >&#omfatter < stdarg. h > dobbelt gennemsnit (int nam,...) (va_list valist; det dobbelte beløb = 0, 0; int. /* sæt valist til nam række argumenter * /va_start (valist, nam) /* adgang til alle de argumenter, som valist * /(i = 0. jeg < nam; jeg + +) (beløb + = va_arg (valist, int)} /*ren hukommelse er forbeholdt valist * /va_end (valist) afkast beløb /num.} int main() {printf (gennemsnitligt 2, 3, 4, 5 =% f \\ n "gennemsnit (4, 2,3,4,5)); printf (gennemsnit på 5, 10, 15 =% f \\ n" gennemsnitlige (3, 5,10,15)}, når ovennævnte adfærdskodeks er udarbejdet og gennemført, giver følgende resultat.det bør bemærkes, at den funktion, average(), er blevet kaldt to gange, og hver gang det første argument er det samlede antal variable argumenter bliver vedtaget.kun ellipses vil blive brugt til at give variable række argumenter.,, gennemsnit af 2, 3, 4, 5 = 3.500000 gennemsnit på 5, 10, 15 = 10.000000,,



Previous:
Next Page: