Procurar
Últimos assuntos
Quem está conectado?
Há 6 usuários online :: 0 registrados, 0 invisíveis e 6 visitantes Nenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 192 em Ter Out 26, 2021 6:07 am
Funções com número variável de argumentos - void func(int a, ...);
Página 1 de 1
Funções com número variável de argumentos - void func(int a, ...);
Uma possibilidade interessante em linguagem C é o uso de funções que podem manipular um numero não conhecido de argumentos. Como exemplo pose-se citar as funções scanf() e printf().
Existe uma biblioteca padrão da linguagem c que possibilita esse trabalho. É a stdarg.h.
Para usar uma função desse tipo deve-se incluir a biblioteca strarg.h e declarar um protótipo da seguinte forma:
void func(int a, ...); //sim, isso é possivel.
-É necessário que ao menos um argumento seja conhecido, o int a no exemplo acima ou a string passada a scanf() e printf().
Para tratar os argumentos dentro da função usa-se:
va_list argptr; //declara uma lista de argumentos
va_start(argptr, n); //inicializa a lista de argumentos
va_arg(argptr, int); //obtém um argumento inteiro da lista
va_end(argptr); //encerra a lista, desaloca a memória usada e etc...
- Código Exemplo -
Nesse programa é usada uma função que soma uma quantidade qualquer de números inteiros informada no primeiro argumento, ou seja, se envia o número de argumentos que se pretende somar seguido dos proprios números. Note que a função é usada a primeira vez com 3 argumentos e depois com seis, sem a necessidade de redefinição!
Mais em:
http://codare.net/2007/05/23/c-cpp-funcoes-com-numero-variavel-de-parametros-stdargs/
Valeu...
Existe uma biblioteca padrão da linguagem c que possibilita esse trabalho. É a stdarg.h.
Para usar uma função desse tipo deve-se incluir a biblioteca strarg.h e declarar um protótipo da seguinte forma:
void func(int a, ...); //sim, isso é possivel.
-É necessário que ao menos um argumento seja conhecido, o int a no exemplo acima ou a string passada a scanf() e printf().
Para tratar os argumentos dentro da função usa-se:
va_list argptr; //declara uma lista de argumentos
va_start(argptr, n); //inicializa a lista de argumentos
va_arg(argptr, int); //obtém um argumento inteiro da lista
va_end(argptr); //encerra a lista, desaloca a memória usada e etc...
- Código Exemplo -
Nesse programa é usada uma função que soma uma quantidade qualquer de números inteiros informada no primeiro argumento, ou seja, se envia o número de argumentos que se pretende somar seguido dos proprios números. Note que a função é usada a primeira vez com 3 argumentos e depois com seis, sem a necessidade de redefinição!
- Código:
#include<stdio.h>
#include<stdarg.h>
int sum(int n, ...);
int main()
{
int d;
d = sum(2, 4, 5);
printf("soma: %d\n", d);
d = sum(5, 1, 7, 56, 43, 888);
printf("soma: %d\n", d);
return 0;
}
int sum(int n, ...)
{
int soma = 0, obtido;
va_list argptr;
va_start(argptr, n);
for( ; n>0; n--)
{
obtido = va_arg(argptr, int);
soma += obtido;
}
va_end(argptr);
return soma;
}
Mais em:
http://codare.net/2007/05/23/c-cpp-funcoes-com-numero-variavel-de-parametros-stdargs/
Valeu...
Diego Henrix- Mensagens : 7
Data de inscrição : 04/04/2012
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
Ontem à(s) 9:27 pm por juk
» LINKS PARA BAIXAR O OFFICE
Ter Abr 23, 2024 5:57 pm por juk
» Backup FULL FIREFOX
Dom Abr 07, 2024 3:16 pm por juk
» Backup FULL CHROME
Dom Abr 07, 2024 2:59 pm por juk
» Dowloand de Videos youtube Sem Permissão adminstrador
Seg Jan 02, 2023 2:13 pm por juk
» Cypecad 2019
Seg Jan 02, 2023 1:41 pm por juk
» Atualizando é instalando o IExplorer 11 no windows 7
Ter Ago 30, 2022 10:54 pm por juk
» COMO HABILITAR INTERNET EXPLORER NO WINDOWS 10
Sex Abr 29, 2022 6:43 pm por juk
» Usando o Monitor de Recursos do sistema para identificar processos Associados.
Qua Abr 06, 2022 10:19 am por juk