Kurs C
menu C#
Zmienna ilość argumantów funkcji |
Pewnie każdy z was zastanawiał się jak zrobić funkcje ,która będzie miała zmienną ilość argumentów tak jak np. funkcja fprintf(). Te funkcje zachowują się tak jak przeciążone metody w językach obiektowych, a ich sposób działania zależy od ilości podanych argumentów. Oczywiście w języku C jest możliwość zadeklarowania takiej funkcji przy pomocy makr, czyli takich gotowych programów, które wyglądają jak funkcje. W naszym przypadku, aby użyć tych makr należy dołączyć bibliotekę stdarg.h. Wraz z tą biblioteką dostajemy 4 makra wyglądające jak funkcje va_list(), va_start(), va_arg() i va_end(). Teraz wystarczy je użyć w kodzie: Jak można zauważyć w powyższym kodzie nie mamy jasno zadeklarowanej ilości zmiennych, zamiast tego mamy użyty operator "..." i argument int args, który informuje program o liczbie użytych argumentów. Tak napisany program wyświetli coś takiego: |