Zmienna liczba argumentówJan Bielecki, Turbo C z grafiką na IBM PC, Wydawnictwa Naukowo-Techniczne, Warszawa 1990, Seria: Mikrokomputery, , nieokreślona liczba argumentówJohn Walkenbach, Excel 2003 PL. Programowanie w VBA., HELION 2004 r., , zmienna lista argumentów, to konstrukcja programistyczna umożliwiająca przekazanie do podprogramu nieokreślonej, w deklaracji (lub definicji) podprogramu, liczby argumentów. Programista deklarując (i definiując) podprogram zwykle deklaruje także określoną liczbę parametrów. W wywołaniu takiego podprogramu należy wyspecyfikować odpowiednią liczbę argumentów, odpowiadającą zdefiniowanym parametrom podprogramu. Są to argumenty wymagane. W pewnych językach programowania lub ich konkretnych implementacjach, istnieje możliwość, oprócz specyfikowania argumentów wymaganych, także specyfikowania zmiennej liczby argumentów, dla których w deklaracji podprogramu nie wyspecyfikowano jawnie odpowiednich parametrów. W tym przypadku istnieje konieczność zdefiniowana w implementacji języka programowania możliwości badania ilości przekazanych do podprogramu argumentów w jego wywołaniu i sposobu pobierania kolejnych argumentów z listy wywołania, a także ich prawidłowej interpretacji, w tym rozpoznania typu przekazanej danej.

Języki programowania C W implementacjach języka C zgodnych z rozszerzeniem standardowym tego języka opracowanym przez ANSI, można definiować funkcje, które mogą być wywoływane ze zmienną liczbą argumentów. W tym przypadku deklarator funkcji, po parametrach określających argumenty wymagane, zawierać powinien symbol "..." (trzy znaki kropki).

Przykładem może być prototyp standardowej funkcji printf int printf(char *Format, ...);

Brak jest w tym standardzie określenia sposobu określania ilości argumentów, ich pobierania i interpretacji. Dlatego zwykle odpowiednia implementacja tego zadania należy do programisty. W przypadku funkcji printf jest to umieszczenie w pierwszym argumencie odpowiadającym parametrowi Format odpowiednich specyfikatorów, np. %i – dana typu int, %c – dana typu char, %s – napis (łańcuch znaków) itd. Brak argumentu dla kolejnego specyfikatora wygeneruje błąd.

Ruby W języku Ruby, ostatni parametr należy poprzedzić znakiem "*". Taki parametr zostanie przekształcony w tablicę. Ponieważ tablica jest obiektem, posiada metody takie jak np. size określające rozmiar – liczbę elementów, czyli liczbę przekazanych argumentówb:Ruby: def identyfikator(*parametr)

Visual Basic, VBA W językach z rodziny Visual Basic, w tym VBA można definiować jako ostatni lub jedyny parametr, specjalny parametr określony frazą ParamArray. Parametr ten jest tablicą, w której zapisane zostaną kolejne argumentyargumenty wywołania podprogramu, które nie mają odpowiedników w zadeklarowanych parametrach wymaganych lub opcjonalnych. Typem komórek tej tablicy jest typ Variant, umożliwiający przechowywanie danych różnych typów – dynamiczne typowanie. Odwołanie do kolejnych komórek tablicy zapewnia dostęp do kolejnych argumentów wywołania. Odpowiednie podprogramy wbudowane zapewniają możliwość badania ilości elementów tablicyczyli ilości argumentów przekazanych do podprogramu i typu wartości zapisanej w konkretnej komórceczyli typu konkretnego argumentu przekazanego do podprogramu.

Nagłówki podprogramównawiasy kwadratowe grupują elementy opcjonalne i nie są częścią definicji: Sub Identyfikator1([parametry_wymagane,] ParamArray() As Variant) Function Identyfikator2([parametry_wymagane,] ParamArray() As Variant) As Typ_Rezultatu

Zobacz też parametr argument argument opcjonalny

Uwagi

Przypisy

Kategoria:Konstrukcje programistyczne