sexta-feira, 29 de julho de 2011

Dicas de Programação: Argumentos variaveis em C/C++

Primeiramente, precisamos saber o que são argumentos variaveis...
Argumentos variaveis são instruções que podem receber 1 ou mais parâmetros, não contendo um número definido destes.
Um exemplo clássico é o método printf do stdio.h:

int a = 10;
char* b = "dez";
printf("%d %s", a, b);

Para criar uma função assim, primeiramente é necessário incluir a biblioteca stdarg.h:

#include <stdarg.h>

Depois, podemos criar a função com o último parâmetro definido com 3 pontos (...):

void printNumber(int a, ...) {
}

Para percorrer os parâmetros passados (onde a quantidade não esta definida), devemos usar o tipo va_list e as funções va_start, va_arg e va_end:

void printNumber(int a, ...) {
va_list args;
int i = a;
va_start(args, a);
while (i) {
printf("%d ", i);
i = va_arg(args, int);
}
va_end(args);
}

Agora, é só chamar assim:

int main(int num_args, char** args) {
printNumber(1,2,3,4,5,6,7,8,9,10, NULL);
return 0;
}

Obs.: Como se utiliza a função printf é necessário incluir a biblioteca stdio.h

Até mais!

Nenhum comentário: