PDA

View Full Version : Chamada de Função



BrasilForeingExchange
18-12-2018, 08:55 AM
Se um nome, que não foi descrito antes, aparece em uma expressão e é seguido pelo parêntesis de abertura, ele é considerado contextualmente como o nome de uma função.

function_name (x1, x2,..., xn)



Argumentos (parâmetros formais) são passados por valor, isto é, cada expressão x1,.., xn é calculada, e os valores são passados para a função. A ordem de cálculo das expressões e a ordem de carregamento dos valores não são garantidos. Durante a execução, o sistema verifica o número e o tipo dos argumentos passados para a função. Tal forma de abordar uma função é chamada de uma chamada de valor.

Chamada de função é uma expressão, cujo valor é o valor retornado pela função. O tipo da função descrito acima deve corresponder com o tipo do valor de retorno. Uma função pode ser declarada ou descrita em qualquer parte do programa no escopo global, isto é, fora de outras funções. Uma função não pode ser declarada ou descrita dentro de outra função.

Exemplos:

int start()
{
double some_array[4]={0.3, 1.4, 2.5, 3.6};
double a=linfunc(some_array, 10.5, 8);
//...
}
double linfunc(double x[], double a, double b)
{
return (a*x[0] + b);
}

Na chamada de uma função com parâmetros default, a lista de parâmetros a serem passados pode ser limitada, mas não antes do primeiro parâmetro default.

Exemplos:

void somefunc(double init,
double sec=0.0001, //define valores default
int level=10);
//...
somefunc(); // Chamada errada. O primeiro parâmetro deve estar presente.
somefunc(3.14); // Chamada correta
somefunc(3.14,0.0002); // Chamada correta
somefunc(3.14,0.0002,10); // Chamada correta

Ao chamar uma função, não se pode pular parâmetros, mesmo aqueles que têm valores default:

somefunc(3.14, , 10); // Chamada errada -> o segundo parâmetros foi pulado.