Funções
Last updated
Last updated
As funções em C funcionam como funções em qualquer linguagem de programação, mas ela possui interações e opções diferentes do que funções normais de linguagens de Alto nível.
Sendo Teórico, Funções são segmentos de programa independente que executa uma tarefa específica podendo ser reutilizada quantas vezes precisar.
Abaixo tem um exemplo de uma Função que faz somas de dois valores de entrada e retorna o resultado:
Para criar funções é preciso primeiro dizer o que ele vai entregar, dizendo a estrutura que ele vai entregar:
No caso acima, como estamos fazendo a soma de dois valores inteiros a função vai entregar um valor inteiro.
A palavra return serve para transmitir externamente aquele valor, assim nesse caso dessa função podemos armazenar o valor do resultado da soma em uma variável.
Uma definição de função não pode estar dentro de outra,porque elas são independentes uma da outra
Exemplo de uso dessa Função:
A função principal de um programa em C é a Main, Esta é a função que será lida pelo programa e irá apresentar os resultados, podemos criar várias funções e iremos utilizar elas dentro da Função main, como mostrado no exemplo anterior.
A função Main é chamada de função Obrigatória.
Esta parte também é muito importante quando falamos de Modularização, que iremos falar a seguir.
Protótipos é o cabeçalho de uma Função, onde é apresentado:
tipo do retorno da função
nome da função
parâmetros necessários da função
A ideia do protótipo é avisar ao programa que irá existir uma função com aquelas informações dentro do programa, sem precisar criar ainda antes da função main.
Os protótipos ou ficam no inicio do arquivo main ou em um arquivo header que será explicado na Modularização
Exemplo de Protótipo:
Caso uma função não seja definida antes da Função principal Main ela obrigatoriamente precisa de um Protótipo para avisar ao programa que essa função vai existir.
Exemplo completo de Funções, caso queira testar esse mesmo exemplo se encontra neste Repositório no Diretório functions
Parâmetros são as variáveis ou objetos que são necessários para uma função e podemos fazer várias coisas interessantes com elas.
Os parâmetros são passados para uma função de acordo com a sua posição, ou seja:
Quando colocamos os parâmetros na construção da Função, chamamos eles de Parâmetros Formais.
Quando usamos variáveis como parâmetros na hora de usar a função, chamamos de Parâmetros reais.
Parâmetros Formais aparecem no Protótipo e em toda a construção da Função, eles existem para que quando for usado a função se saiba onde cada variável vai ser utilizada.
Parâmetros reais são os valores que serão pegos de variáveis ou adicionados na mão que serão usados na hora que o programa for rodado, alterando as posições que antes eram parâmetros formais.
Agora com isso explicado vou explicar o que é Passagem de Parâmetros.
Quando armazenamos valores dentro de variáveis podemos fazer inúmeras coisas com esses valores sem o medo de perder os dados guardados.
na Passagem de Parâmetros por valor, chamamos as variáveis como parâmetro na hora de usar a função, onde dentro da função ele usa os valores previamente guardados sem fazer qualquer modificação dentro das variáveis usadas.
Exemplo completo:
Diferente da passagem por valor, nesse caso ele não vai passar o valor de uma variável e sim a referência á aquela variável.
Isto é um dos casos que diferencia a linguagem C de outras linguagens, nesse momento iremos discutir sobre Ponteiros, pelo menos o inicio.
As alterações feitas nos parâmetros da função afetam as variáveis que foram usadas, podendo alterar os valores delas. Nós não usamos as variáveis com o valor iniciado mas as variáveis que são ponteiros, onde fica armazenado o endereço de memória da variável de valores.
Exemplo de uma variável de ponteiro
Usamos o simbolo & para pegar o endereço de memória de uma variável
Usamos o simbolo * para duas coisas:
quando colocado a direita de um tipo de dados(ex: int* ) estamos criando uma variável de ponteiros que vai Receber um endereço de memória.
quando colocado a esquerda do nome de uma variável de ponteiros(ex: *var ) estamos acessando o valor do endereço de memória gravado nessa variável de ponteiros.
Exemplo completo:
No caso abaixo, estamos pegando o endereço de memória de uma variável e alterando o valor dela.
É uma multiplicação com o valor de uma variável usando a referência da memória dela, ou seja, alterando o valor na memória da variável
Por fim, todas as linguagens de alto nível sempre trabalham com PASSAGEM DE VALOR mas a Linguagem C possui também a opção de ser por PASSAGEM POR REFERÊNCIA.
Tipo de Estrutura
O que entrega
void
Utilizado quando criamos funções que não retornam nenhum valor externo
int
Utilizado quando a função irá retornar um valor inteiro
float
Utilizado quando a função irá retornar um valor de Ponto Flutuante(ex: 3,6)
char
Utilizado quando a função irá retornar um valor do tipo Caractere( ex: 'a' )