parmN argument funkcji stojący przed wielokropkiem, pozwala on uzyskać adres listy argumentów.
Typ va_list reprezentuje obiekt danych używany do przechowywania argumentów odpowiadających liście argumentów, które wypisujemy w miejsce wielokropka.
Makro va_start( va_list, parmN) kopiuje listę argumentów do zmiennej typu va_list.
Makro va_arg( va_list, typ danych) przyjmuje dwa argumenty zmienną typu va_list oraz nazwę typu pobieranych danych. Każdorazowe wywołanie makra va_arg skutkuje zwróceniem przez nie kolejnego argumentu z listy va_list.
Makro va_copy( va_list, va_list) pozwala utworzyć kopię va_list. Jest to przydatna opcja kiedy chcemy kilka razy analizować argumenty funkcji, gdyż mechanizm va_arg() nie ma możliwości powrotu do poprzedniego elementu. Należy pamiętać o zwolnieniu przydzielonych zasobów kopi.