Funkcja wariadyczna
Lekcja 10 z 17 w kursie Funkcje w C w Coddy.
W języku C, podobnie jak w innych językach programowania, istnieje pojęcie funkcji o zmiennej liczbie argumentów, czyli funkcji, która przyjmuje nieograniczoną liczbę parametrów.
Aby użyć funkcji o zmiennej liczbie argumentów, najpierw musimy dołączyć plik nagłówkowy <stdarg.h>.
Przyjrzyjmy się przykładowi, aby zobaczyć, jak to działa:
#include <stdio.h>
#include <stdarg.h>
int sum(int num, ...) {
va_list list;
va_start(list, num);
int sum = 0;
for (int i = 0; i < num; i++) {
sum += va_arg(list, int);
}
va_end(list);
printf("%d", sum);
}
int main() {
sum(2, 20, 30);
return 0;
}W tym przykładzie funkcja sum oblicza sumę zmiennej liczby wartości całkowitych.
Zadeklaruj zmienną przechowującą listę argumentów za pomocą makra
<strong>va_list</strong>:va_list list;Zainicjuj listę argumentów:
va_start(list, num);Zadeklaruj zmienną przechowującą sumę:
int sum = 0;Przejdź przez wszystkie elementy, pobierz każdy argument i dodaj go do sumy:
for (int i = 0; i < num; i++) { sum += va_arg(list, int); }Po zakończeniu obliczeń zwolnij listę argumentów:
va_end(list);W funkcji
<strong>main</strong>wywołaj funkcję<strong>sum</strong>w następujący sposób:sum(2, 20, 30);
Wyzwanie
ŁatwyUżywając funkcji wariadycznej, utwórz funkcję o nazwie average, która oblicza i wypisuje średnią ocen uczniów.
Spróbuj swoich sił
#include <stdio.h>
#include <stdarg.h>
// Funkcja obliczająca średnią
int main() {
// Wywołaj funkcję o zmiennej liczbie argumentów | Nie zmieniaj tego
average(4, 85, 90, 78, 92);
return 0;
}Wszystkie lekcje w sekcji Funkcje w C
Poćwicz samodzielnie: Kompilator C online