Elenchi di argomenti variabili
Le dichiarazioni di funzione, in cui l'ultimo membro di argument-declaration-list sono i puntini di sospensione (...), possono accettare un numero variabile di argomenti. In questi casi, C++ fornisce il controllo di tipo solo per gli argomenti dichiarati esplicitamente. È possibile utilizzare elenchi di argomenti variabili quando è necessario rendere una funzione così generale che anche il numero e i tipi di argomenti possono variare. La famiglia di funzioni printf è un esempio delle funzioni che utilizzano elenchi di argomenti variabili.
Per accedere agli argomenti dopo quelli dichiarati, utilizzare le macro contenute nel file di inclusione standard STDARG.H come descritto in Funzioni con elenchi di argomenti variabili.
Sezione specifica Microsoft
Microsoft C++ consente di specificare i puntini di sospensione come argomento se i puntini di sospensione sono l'ultimo argomento e sono preceduti da una virgola. Di conseguenza, la dichiarazione int Func( int i, ... ); è valida, ma int Func( int i ... ); non lo è.
Fine sezione specifica Microsoft
La dichiarazione di una funzione che accetta un numero variabile di argomenti richiede almeno un argomento segnaposto, anche se non viene utilizzato. Se questo argomento segnaposto non viene fornito, non è possibile accedere agli argomenti restanti.
Quando gli argomenti di tipo char vengono passati come argomenti variabili, vengono convertiti nel tipo int. Analogamente, quando gli argomenti di tipo float vengono passati come argomenti variabili, vengono convertiti nel tipo double. Gli argomenti di altri tipi sono soggetti alle consuete promozioni a virgola mobile e integrali. Vedere Promozioni integrali per ulteriori informazioni.