Najlepszy samouczek C parametrem zmiennym W 2024 r. W tym samouczku możesz dowiedzieć się C parametrem zmiennym
Czasami można spotkać taką sytuację, chcesz działać ze zmienną liczbą argumentów, zamiast ustalonej liczby argumentów. Język C dla tego scenariusza stanowi rozwiązanie, które pozwala na zdefiniowanie funkcji, która może przyjąć różną liczbę parametrów w zależności od specyficznych potrzeb. Poniższy przykład przedstawia definicję taką funkcję.
int func(int, pl. ) { . . . } int main() { func(1, 2, 3); func(1, 2, 3, 4); }
Należy pamiętać, żefunc () funkcja ostateczne pisemne argumenty wielokropek, że trzy kropki (pl.),że argument przed elipsy jest zawszeint,stanowiących całkowitą liczbę zmiennych parametrów mają być przekazane. Aby korzystać z tej funkcji, trzeba użyćstdarg.h plik nagłówka, który zapewnia funkcjonalność zmiennych parametrów w celu uzyskania funkcji i makr.Specyficzne etapy są następujące:
Przejdźmy teraz wykonaj kroki opisane powyżej funkcje pisać o zmiennej liczbie argumentów i zwraca ich średnio:
#include <stdio.h> #include <stdarg.h> double average(int num,pl.) { va_list valist; double sum = 0.0; int i; /* 为 num 个参数初始化 valist */ va_start(valist, num); /* 访问所有赋给 valist 的参数 */ for (i = 0; i < num; i++) { sum += va_arg(valist, int); } /* 清理为 valist 保留的内存 */ va_end(valist); return sum/num; } int main() { printf("Average of 2, 3, 4, 5 = %f\n", average(4, 2,3,4,5)); printf("Average of 5, 10, 15 = %f\n", average(3, 5,10,15)); }
Jeżeli powyższy kod jest kompilowany i wykonywany, to daje następujący wynik. Należy zauważyć, żeśrednia () jest wywoływana dwukrotnie, za każdym razem pierwszy parametr oznacza całkowitą liczbę przenoszone są zmienne parametry.Elipsy są wykorzystywane w celu dostarczenia zmienną liczbę argumentów.
Average of 2, 3, 4, 5 = 3.500000 Average of 5, 10, 15 = 10.000000