Diferentes tipos de função

Diferentes tipos de função
Uma função é um código para realizar uma determinada operação. Tem um nome para sua identificação. Aqui não estamos interessados ​​em definir a função. Aqui discutimos diferentes tipos de função e sua aplicação.

Maneiras de definir uma função

Existem quatro tipos de programas disponíveis no idioma C. Eles são:

1. Não leva nada, não retorna nada.

2. Leva algo, não retorna nada.

3. Não leva nada, retorna algo.

4. Pega algo, devolve algo.

1. Não leva nada, não retorna nada

Exemplo de programação 1

#incluir
void main ()

Void Add (vazio);
adicionar ();

void add ()

int a, b, c;
printf ("Digite dois números");
scanf (" %d %d", & a, & b);
c = a + b;
printf ("soma é = %d", c);

Saída

Explicação

Sempre que queremos compilar um programa, o compilador precisa saber o significado de cada palavra escrita em um programa, o que significa que deve declarar todas as funções ou variáveis ​​no programa. Para esta função, é necessária a declaração. Na declaração de função, escrevemos 3 coisas

  1. Tipo de retorno
  2. Nome de FM
  3. Argumento

Mas, no caso de uma função predefinida, uma declaração é escrita no arquivo de cabeçalho. Por exemplo: CLRSCR () - -> A declaração é feita em arquivo e função é definida no arquivo da biblioteca. Turbo c ++ 3.0 O compilador declara automaticamente a função definida pelo usuário. Mas devemos declarar uma função. Escrevemos apenas o nome e o parâmetro passados ​​no argumento na função de chamada.

2. Leva algo, não retorna nada

Exemplo de programação 2

#incluir
void add (int, int); // Declaração de função globalmente
void main ()

int x, y;
void add (int, int); // Declaração da função localmente
printf ("Digite 2 números");
scanf (" %d %d", & x, & y); // argumentos reais
add (x, y);

void add (int x, int y) // argumentos formais

int c;
c = x+y;
printf ("soma é %d", c);

Saída

Explicação

Se quisermos adicionar os dois valores de duas variáveis ​​declaradas dentro do principal () e adicioná -lo em um nome de função diferente Adds (), usamos as tomadas algo retorna nada. Nesse caso, o valor de x e y é passado para a função add quando add () está chamando na função principal. Para isso, é chamado de chamada por valor.

Sempre que passamos um valor como um argumento para uma função de chamada, esses argumentos são chamados de argumento real.

E em uma definição de função, dentro dos parênteses de uma função, declaramos a variável que receberá o valor da variável passada pela função de chamada, que é chamada de argumento formal.

O nome do argumento real e da variável de argumento formal pode ser o mesmo, porque o compilador não confunde neste caso; Ele sabe que a variável x, y que é declarada dentro de main () e x, y declarada add () são variáveis ​​diferentes.

Na função de chamada, apenas passamos o valor das variáveis ​​declaradas dentro de Main (). Para isso, escrevemos add (x, y);

3. Não leva nada, retorna algo

Exemplo de programação 3

#incluir
int add (void);
void main ()

int s;
s = add ();
printf ("soma é %d", s);

int add ()

int a, b, c;
printf ("Digite dois números");
scanf (" %d %d", & a, & b);
c = a+b;
retornar c;

Saída

Explicação

Não significa nada significa, quando mesmo main () chamar uma função para adicionar (), isso significa que não leva nenhum argumento. Seus meios que add () pegam o valor das variáveis ​​do usuário e executam o add.

Retornar algo significa add (); Aqui, retorne o resultado adicionado ao principal () para usar o retorno da palavra -chave. Ao adicionar () retornar o valor, esse valor deve ser mantido em uma (s) variável (s) tipo de dados int que é declarada em main (). Porque aqui o tipo de retorno é int. Isso significa s = add () é substituído por, s = valor do retorno.

Para isso, na definição de função de add (), aqui devemos mencionar o tipo de retorno de add (), aqui está int. No caso de um retorno, retornamos apenas um valor. Então, retorne (a, b, c)-> está errado. Isso significa que apenas retorna o valor de C porque está escrito pelo menos dentro dos parênteses.

Quando qualquer função retorna qualquer valor, deve -se entender que o controle também retorna à função de chamada.

Se escrevermos algum código após a declaração de retorno, esse código específico não teve nenhum efeito no programa, à medida que o controle muda para a função de chamada.

Qualquer função não pode acessar a variável declarada pela outra função. Porque qualquer variável declarada dentro de uma função é tratada como uma variável local.

Portanto, em Main (), temos que imprimir o valor de S em vez de C porque C é a variável que é declarada dentro do add ().

4. Pega algo, devolve algo

Exemplo de programação 4

#incluir
int add (int, int);
void main ()

int s, x, y;
printf ("Digite 2 números");
scanf (" %d %d", & x, & y);
s = add (x, y);
printf ("soma é %d", s);

int add (int a, int b)

int c;
c = a+b;
retornar c;

Saída

Explicação

O programa Return Something Returns Nothing é o mesmo que não leva nada; A única diferença é que, como é por tomadas, algo está na natureza, então o valor de dois números deve ser aprovado na função de chamada.

Isso significa que o usuário pega o valor do teclado usado pelo principal (). Esse valor é passado para o add ().

Então, está no tipo de chamada por exemplo de chamada. Caso contrário, o procedimento de retorno é o mesmo que não leva nada, retorna algo procedimento.

Conclusão

Aprendendo sobre diferentes tipos de funções em C, concluímos que todo tipo de função dá o mesmo resultado. Mas cada um deles tem um mecanismo diferente. Cada um deles é necessário de acordo com o requisito do programa. Então, temos que conhecer cada tipo de função.