Descrição
A macro da biblioteca C void va_end(va_list ap) permite uma função com argumentos variáveis que usaram o va_startmacro para retornar. E seva_end não é chamado antes de retornar da função, o resultado é indefinido.
Declaração
A seguir está a declaração para a macro va_end ().
void va_end(va_list ap)
Parâmetros
Valor de retorno
Esta macro não retorna nenhum valor.
Exemplo
O exemplo a seguir mostra o uso da macro va_end ().
#include <stdarg.h>
#include <stdio.h>
int mul(int, ...);
int main () {
printf("15 * 12 = %d\n", mul(2, 15, 12) );
return 0;
}
int mul(int num_args, ...) {
int val = 1;
va_list ap;
int i;
va_start(ap, num_args);
for(i = 0; i < num_args; i++) {
val *= va_arg(ap, int);
}
va_end(ap);
return val;
}
Vamos compilar e executar o programa acima para produzir o seguinte resultado -
15 * 12 = 180