Programação  
 
Conhecimento computador >> Programação >> C /C + + programação >> 
Como utilizar as funções de parâmetros variáveis ​​em C + +
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 ); }


Anterior :

Próximo : No
  Os artigos relacionados
·Como escrever um programa em C que calcula de amanhã D…
·Objetivo Questionamento em C Programação 
·Como descompactar um arquivo em C # 
·Como compilar Netcat 
·Como compilar um GDB 64 -Bit 
·Como alocar uma matriz 2D usando malloc 
·Como usar Passcodes em uma matriz unidimensional 
·Como criar DropDownList com chave de pesquisa em C 
·Como passar parâmetros para MVC View 
·Como usar rápidos Classificar função em C + + no arr…
  Artigos em destaque
·Como criar uma caixa de texto no Visual C # 
·Como usar arquivos FX em GTK Radiant 
·Como colocar C Estilo Cordas em uma matriz em C + + 
·Como ler uma linha usando CPP 
·O uso de um padrão Construtor C 
·Como começar Teclas em C + + 
·A diferença entre Filestream & StreamReader 
·Como ler um documento do Word usando C 
·Visual C Tutorial 2005 
·Como corrigir a biblioteca C + + Visual Runtime 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados