Listy zmiennych argumentów
Deklaracja funkcji, w której ostatnim członkiem listy-deklaracji-argumentów jest wielokropek (...), może przyjąć zmienną liczbę argumentów.W takich przypadkach, C++ zapewnia wykrywanie tylko jawnie deklarowanych argumentów typu.Można użyć zmiennej listy argumentów, kiedy istnieje potrzeba utworzenia funkcji tak ogólnej, że nawet liczba i typy argumentów mogą się różnic.Rodzina funkcji printf jest przykładem funkcji korzystających ze zmiennych argumentów.
Aby uzyskać dostęp do argumentu po zadeklarowaniu, należy użyć makr zawartych w dołączonym standardowym pliku STDARG.H, jak opisano w Funkcje z listami zmiennych argumentów.
Specyficzne dla firmy Microsoft
Microsoft C++ pozwala używać wielokropka jako argumentu, jeżeli wielokropek jest ostatnim argumentem i jest poprzedzony przecinkiem.W związku z tym, deklaracja int Func( int i, ... ); jest legalna, ale int Func( int i ... ); nie jest.
KONIEC informacji specyficznych dla firmy Microsoft
Deklaracja funkcji, o zmiennej liczbie argumentów wymaga, co najmniej jednego argumentu symbolu zastępczego, nawet jeśli nie jest używany.Jeśli argument symbolu zastępczego nie jest podany, nie ma sposobu dostępu do pozostałych argumentów.
Kiedy argumenty typu char są przekazywane, jako argumenty zmiennej, są konwertowane na typ int.Podobnie, gdy argumenty typu float są przekazywane, jako argumenty zmiennej, są konwertowane na typ double.Argumenty innych typów podlegają zwykle promocji integralnej i zmiennoprzecinkowej.Zobacz Promocje typów całkowitych, aby uzyskać więcej informacji.