A maioria das funções aceitar um número fixo de argumentos. Algumas aplicações , no entanto, exigem funções para aceitar parâmetros variáveis . Um exemplo bem conhecido é a função de impressão de C. Para esses casos, C + + oferece uma solução poderosa que permite que o compilador decifrar os argumentos em tempo de execução . Leia sobre para um tutorial que demonstra como implementar essas funções. Coisas que você precisa 
 + 
 compilador Intermediate C + C + + com IDE , como o Microsoft Visual C + + 
 Show Mais instruções 
 1 
 Adicione o arquivo de biblioteca em STDARG.H seu programa. É onde você define as macros. Na primeira linha do arquivo, inserir # include . 
 2 
 Use o va_arg macros, va_start e v_end que colaborar com o va_type em stdarg.h . 
 3 
 Estabelecer uma variável do tipo va_list funcionar como um marcador de lista. 
 4 
 Acesse os parâmetros individuais usando a macro va_arg . Encontre uma maneira de dizer a macro va_arg que tipo de argumento que você quer que ele para recuperar a fornecer o número correto de bytes da pilha. 
 5 
 converter o resultado do Passo 4 para o tipo que você quiser ser. 
 6 
 Chame o macro va_end para terminar o processamento de parâmetros variáveis . 
 7 
 Veja o exemplo abaixo que demonstra as etapas de 2 a 6. Myprintf função aceita uma seqüência de formato que especifica o tipo ea posição de cada argumento. Após a seqüência de formato é a lista de argumentos. A função imprime os argumentos. Para simplificar , pode apenas int processo , float e char: 
 //declaração 
 anular myprintf (char * formato , ...); 
 //defintion 
 myprintf void ( char * formato , . .. ) { 
 va_list vl ; 
 int i; 
 va_start ( vl , args ); 
 for (i = 0; args [ i] = '\\ 0' ; ! + + i) { 
 união any_t { 
 int i; 
 float f ; 
 char c ; } 
 houver; 
 if ( args [ i] == ' i ') { 
 any.i = va_arg ( vl , int) ; 
 printf ("% i \\ n" , any.i ); 
 } else if ( 
 args [ i] == ' f ' ) { 
 any.f = va_arg ( vl , float) ; 
 printf (" % f \\ n", any.f ); } else 
 
 if ( args [ i] == ' c') { 
 any.c = va_arg ( vl , char ); 
 printf (" % c \\ n", any.c ); 
 } else { 
 
 jogar SomeException ; 
 } 
 va_end ( vl ); }