TADS IFGoiano-Urutaí
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Procurar
 
 

Resultados por:
 


Rechercher Pesquisa avançada

Últimos assuntos
» Principais IDEs para Java
Funções com número variável de argumentos - void func(int a, ...); EmptyOntem à(s) 9:27 pm por juk

» LINKS PARA BAIXAR O OFFICE
Funções com número variável de argumentos - void func(int a, ...); EmptyTer Abr 23, 2024 5:57 pm por juk

» Backup FULL FIREFOX
Funções com número variável de argumentos - void func(int a, ...); EmptyDom Abr 07, 2024 3:16 pm por juk

» Backup FULL CHROME
Funções com número variável de argumentos - void func(int a, ...); EmptyDom Abr 07, 2024 2:59 pm por juk

» Dowloand de Videos youtube Sem Permissão adminstrador
Funções com número variável de argumentos - void func(int a, ...); EmptySeg Jan 02, 2023 2:13 pm por juk

» Cypecad 2019
Funções com número variável de argumentos - void func(int a, ...); EmptySeg Jan 02, 2023 1:41 pm por juk

» Atualizando é instalando o IExplorer 11 no windows 7
Funções com número variável de argumentos - void func(int a, ...); EmptyTer Ago 30, 2022 10:54 pm por juk

» COMO HABILITAR INTERNET EXPLORER NO WINDOWS 10
Funções com número variável de argumentos - void func(int a, ...); EmptySex Abr 29, 2022 6:43 pm por juk

» Usando o Monitor de Recursos do sistema para identificar processos Associados.
Funções com número variável de argumentos - void func(int a, ...); EmptyQua Abr 06, 2022 10:19 am por juk

Quem está conectado?
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, ...);

Ir para baixo

Funções com número variável de argumentos - void func(int a, ...); Empty Funções com número variável de argumentos - void func(int a, ...);

Mensagem  Diego Henrix Dom Jan 27, 2013 5:02 pm

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!

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... Wink

Diego Henrix

Mensagens : 7
Data de inscrição : 04/04/2012

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos