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:
Postar um comentário