Ir ao conteúdo

como ver a quantidade de parametros e fazer parametros opcionais?


Cambalinho

Posts recomendados

Postado

(eu disse parametros, mas alguns confundem com argumentos... parametros são as variaveis que usas dentro da funçao e os argumentos são os valores que metes na funçao(se me enganei por favor me digam;)))

imgina que queres fazer 1 funçao soma:

int soma(...)
{
int a;
int i;
int b;
i=NumeroParametros;
for(b=0; b<i; b++)
{
a+= parametro[i];
}
return a;
}

o que preciso de saber, neste momento, é: como se verifica quantos argumentos foram enviados á funçao?

Postado

ja vi como se faz parametros opcionais;)

em vez de só criar 1 variavel, como parametro, tambem a inicializamos:

int sum(int a =3,int b =3)
{
return (a+;
}
//exemplo 1:
a=sum();
//neste caso 'a' é 6

//exemplo 2:
a=sum(6,6);
//neste caso 'a' é 12

e assim fazemos parametros opcionais(as variaveis tem de ser inicializadas).

(este codigo foi testado por mim e sem erros;))

ScreenBlack: podes me ajudar a encontrar 1 link com informaçao sobre lista de parametros?

Postado

Para saber quantos argumentos foram enviados, você pode usar um for para percorrer até encontrar um valor 0. Por exemplo,

conta(4, 2, 3, 0);


int conta(int valores, ...){
va_list argumento;
int i, n = 0;
va_start(argumento, valores);

for(i = valores; i; i = va_arg(argumento, int), n++);

return n;

Postado
Para saber quantos argumentos foram enviados, você pode usar um for para percorrer até encontrar um valor 0. Por exemplo,

conta(4, 2, 3, 0);


int conta(int valores, ...){
va_list argumento;
int i, n = 0;
va_start(argumento, valores);

for(i = valores; i; i = va_arg(argumento, int), n++);

return n;

obrigado, mas é possivel saber de outra forma ou funciona da mesma forma como os vectores(sem falar de strings porque tem '\0' como terminador;))?

porque o 1º parametro esta a indicar o numero de parametros com que vai trabalhar.

Postado

Não tentei de outra forma, apenas com loop.

O primeiro argumento pode ser qualquer valor. O único argumento usado para marcar o quantidade de valores é o último, que nesse caso é 0.

Postado
Não tentei de outra forma, apenas com loop.

O primeiro argumento pode ser qualquer valor. O único argumento usado para marcar o quantidade de valores é o último, que nesse caso é 0.

desculpa mas é possivel fazer deste estilo:

int somas(...)
{
int a=0, b=0, i=0;
a=quantidadeargumentos;
for (i=0; i<a; i++)
{
b=b+argumentos[i];
}
return b;
}

???

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...