Tudo o que você precisa saber sobre funções em C?



Este artigo apresentará a você um conceito simples, mas muito fundamental e importante, que é Funções em C, e o seguirá com uma demonstração.

Este artigo irá apresentar a você um simples, mas muito fundamental e importante conceito que é Funções em C e siga-o com uma demonstração. As dicas a seguir serão abordadas neste artigo,

Funções são blocos de construção de qualquer linguagem de programação. Em palavras simples, funcione em um conjunto de instruções, que recebe entradas, executa uma tarefa específica e retorna a saída.
A ideologia por trás da função de criação é vincular um conjunto de instruções relacionadas que executam uma tarefa específica. Para isso, você não precisa escrever o mesmo código várias vezes para diferentes conjuntos de entradas. Você apenas tem que chamar a função para diferentes entradas, ela executará a tarefa especificada para a entrada fornecida e retornará a saída. Você pode chamar a função quantas vezes quiser. Neste blog, aprenderemos todas as nuances sobre funções na linguagem de programação C.





Vamos começar com a questão mais fundamental.

O que são funções em C?

As funções são as mesmas em C como em qualquer outra linguagem de programação. É um conjunto de códigos que se unem para realizar uma tarefa específica. O conjunto de código a ser executado é especificado entre chaves, ou seja, ‘{}’.



Antes de aprender a escrever uma função em C, vamos primeiro entender quais são as vantagens.

Vantagens das funções em C

As vantagens das funções são comuns a todas as linguagens de programação.
A ideia principal por trás da função é reduzir a redundância no código. Suponha que você tenha uma funcionalidade que precisa ser executada várias vezes em um programa, então, em vez de escrevê-la várias vezes, você pode criar uma função para essa tarefa e chamá-la quantas vezes quiser. Outro benefício oculto é que, se a lógica de sua funcionalidade mudar posteriormente, você não precisará ir em frente e alterá-la em vários lugares. Você só precisa alterar o código em um lugar (ou seja, na função) e isso se refletirá em todo o programa.

A modularidade é novamente um benefício adicional. Escrever um grande pedaço de código incluindo tudo e mais reduz a legibilidade do código e torna-o difícil de gerenciar. Você pode dividir o código em seções para funcionalidades individuais usando funções, que são mais simples de entender e gerenciar.



Função também fornece abstração, onde podemos chamar uma função e obter a saída sem conhecer a implementação interna.

Continuando com os tipos de função C

Tipos de função em C

Existem dois tipos de funções:
Funções de biblioteca
Funções definidas pelo usuário

Funções de biblioteca são aquelas funções que já estão definidas na biblioteca C, como strcat (), printf (), scanf () etc. Você só precisa incluir os arquivos de cabeçalho apropriados para usar essas funções.
Funções definidas pelo usuário são aquelas funções definidas pelo usuário. Essas funções são feitas para reutilização de código e para economizar tempo e espaço.

o que é feijão em java

Agora que sabemos os benefícios de criar uma função, vamos entender como declarar uma função em C.

Declaração e definição de função

Declaração de função:

Sintaxe da declaração da função:

return_type function_name (data_type arg1, data_type arg2) int add (int x, int y) // declaração da função

Na Declaração de Função, especificamos o nome da função, o número do parâmetro de entrada, seus tipos de dados e o tipo de retorno da função. A declaração da função informa ao compilador a lista de argumentos que a função espera com seus tipos de dados e o tipo de retorno da função.

Na declaração da função, especificar os nomes do parâmetro é opcional, mas especificar seus tipos de dados é obrigatório.

int add (int, int) // declaração da função

A função especificada acima terá dois parâmetros inteiros.

Definição de Função

 Imagem- Funções em C- Edureka
int add (int, int) // declaração da função return_type function_name (parâmetros) {Corpo da função}

Conforme mostrado na imagem acima, uma definição de função consiste em duas partes, ou seja, cabeçalho e corpo da função

Cabeçalho da função: o cabeçalho da função é o mesmo que a declaração da função sem o ponto-e-vírgula. O cabeçalho da função contém o nome da função, parâmetro e tipo de retorno.

  • Tipo de devolução: O tipo de retorno é o tipo de dados do valor que será retornado pela função. A função pode ou não retornar um valor. Em caso afirmativo, o tipo de dados do valor de reajustamento deve ser especificado, caso contrário, o tipo de retorno precisa ser nulo.

  • Nome da Função: Este é o nome da função com a qual podemos chamar a função quando e onde for necessário.

  • Parâmetros: Os parâmetros são os valores de entrada que serão passados ​​para a função. Ele informa sobre os tipos de dados dos argumentos, sua ordem e o número de argumentos que serão passados ​​para a função. Os parâmetros são opcionais. Você também pode ter funções sem parâmetros.

Corpo da Função: O corpo da função é o conjunto de instruções que executa uma tarefa específica. Ele define o que a função faz.

Exemplo:

int add (int x, int y) {int sum = x + y return (sum)}

É recomendado declarar uma função antes de defini-la e usá-la. Em C, podemos declarar e definir a função no mesmo lugar.

Exemplo:

#include int add (int, int) // declaração da função // definição da função int add (int x, int y) // cabeçalho da função {// corpo da função int sum = x + y return (sum)} // Função principal int main () {int sum = add (23, 31) printf ('% d', sum) return 0}

Como podemos ver no exemplo acima, estamos chamando a função usando a instrução int sum = add (23, 31). O valor retornado da função é armazenado na variável sum.

Antes de seguirmos em frente, há mais um conceito importante a ser entendido sobre o parâmetro. Existem dois tipos de parâmetro:

Parâmetro real : Esses parâmetros que são passados ​​para funções ao chamá-los são conhecidos como parâmetros reais. Por exemplo, 23 e 31 no exemplo acima são os parâmetros reais.

Parâmetro Formal : Os parâmetros recebidos pelas funções são conhecidos como parâmetros formais. Por exemplo, x e y no exemplo acima são os parâmetros formais.

Vamos avançar rapidamente e entender as diferentes maneiras de chamar uma função em C.

Chamando uma função

Existem duas maneiras de chamar uma função:

  • Chamada por valor
  • Chamada por referência

Chamada por valor

No método chamada por valor, o valor do parâmetro real é passado como um argumento para a função. O valor do parâmetro real não pode ser alterado pelos parâmetros formais.

No método call be value, diferentes endereços de memória são alocados para parâmetros formais e reais. Apenas o valor do parâmetro real é copiado para o parâmetro formal.

Exemplo:

#include void Call_By_Value (int num1) {num1 = 42 printf ('nInside Function, Number is% d', num1)} int main () {int num num = 24 printf ('nBefore Function, Number is% d', num ) Call_By_Value (num) printf ('Função nAfter, o número é% dn', num) return 0}

Resultado

No exemplo acima, antes da chamada pela função de valor, o valor de num é 24. Então, uma vez que chamamos a função e passamos o valor e o alteramos dentro da função, ele se torna 42. Quando voltamos e imprimimos novamente o valor de num na função principal, ele se torna 24.

Chamada por referência

Na chamada por referência, o endereço de memória do parâmetro real é passado para a função como argumento. Aqui, o valor do parâmetro real pode ser alterado pelo parâmetro formal.

O mesmo endereço de memória é usado para o parâmetro real e formal. Portanto, se o valor do parâmetro formal for modificado, ele também será refletido pelo parâmetro real.

Em C, usamos ponteiros para implementar chamadas por referência. Como você pode ver no exemplo abaixo, a função Call_By_Reference está esperando um ponteiro para um inteiro.

Agora, esta variável num1 armazenará o endereço de memória do parâmetro real. Portanto, para imprimir o valor que está armazenado no endereço de memória apontado por num1, precisamos usar o operador de desreferência, ou seja, *. Portanto, o valor de * num1 é 42.

O operador de endereço & é usado para obter o endereço de uma variável de qualquer tipo de dados. Portanto, na declaração de chamada de função ‘Call_By_Reference (& num)’, o endereço de num é passado para que num possa ser modificado usando seu endereço.

Exemplo

#include // definição da função void Call_By_Reference (int * num1) {* num1 = 42 printf ('nFunção interna, o número é% d', * num1)} // Função principal int main () {int num num = 24 printf ( 'nBefore Function, Number is% d', num) Call_By_Reference (& num) printf ('nAfter Function, Number is% dn', num) return 0}

Resultado

Neste exemplo, o valor de num é 24 inicialmente, dentro da função principal. Depois que ele é passado para a função Call_By_Reference e o valor é modificado pelo parâmetro formal, ele também é alterado para o parâmetro real. É por isso que quando estamos imprimindo o valor de num após a função, estamos imprimindo 42.

passagem por valor passagem por referência java

Continuando com os tipos de função definida pelo usuário em C

Tipos de definidos pelo usuário Função em C

Existem vários tipos de funções definidas pelo usuário com base no tipo de retorno e nos argumentos passados.

Continuando sem nenhum argumento passado e nenhum valor de retorno

1. Nenhum argumento passado e nenhum valor de retorno

Sintaxe:

declaração de função:

chamada de função void function (): function () definição de função: void function () {declarações}

Exemplo

quais são as restrições em sql
#include void add () void add () {int x = 20 int y = 30 int sum = x + y printf ('sum% d', sum)} int main () {add () return 0}

Continuando sem nenhum argumento passado, mas um valor de retorno

2 Nenhum argumento passado, mas um valor de retorno

Sintaxe:

declaração de função:

função int () chamada de função: função () definição de função: int function () {declarações retornam a}

Exemplo:

#incluir int add () int add () {int x = 20 int y = 30 int sum = x + y return (sum)} int main () {int sum sum = add () printf ('sum% d', soma) retorno 0}

Continuando com os argumentos aprovados, mas sem valor de retorno

3 Argumento aprovado, mas nenhum valor de retorno

Sintaxe:

declaração de função:

função void (int) chamada de função: função (a) definição de função: função void (int a) {declarações}

Exemplo:

#include void add (int, int) void add (int x, int y) {int sum = x + y return (sum)} int main () {add (23, 31) return 0}

Continuando com o argumento passado e um valor de retorno

4 Argumento aprovado e um valor de retorno

Sintaxe:

declaração de função:

função int (int) chamada de função: função (a) definição de função: função int (int a) {declarações retornam a}

Exemplo

#incluir int add (int, int) int add (int x, int y) {int sum = x + y return (sum)} int main () {int sum = add (23, 31) printf ('% d' , soma) retorno 0}

Agora, vamos examinar rapidamente as funções da biblioteca C que são importantes para escrever um programa.

Funções da biblioteca C

As funções de biblioteca são funções em C predefinidas e presentes por padrão. Você só precisa incluir o arquivo de cabeçalho específico no programa e pode usar as funções definidas nesse arquivo de cabeçalho. Cada arquivo de cabeçalho fornece um tipo específico de funcionalidade. A extensão do arquivo de cabeçalho é .h.

Por exemplo, para usar as funções printf / scanf, precisamos incluir stdio.h em nosso programa, que fornece funcionalidade relacionada à entrada / saída padrão.

A seguir está a lista de arquivos de cabeçalho.

1stdio.hArquivo de cabeçalho de entrada / saída padrão
2cunhagem.hArquivo de cabeçalho de entrada / saída do console
3string.hFunções de biblioteca relacionadas a strings, como gets (), puts (), etc.
4stdlib.hFunções gerais da biblioteca, como malloc (), calloc (), exit (), etc.
5math.hFunções relacionadas a operações matemáticas, como sqrt (), pow (), etc.
6time.hFunções relacionadas ao tempo
7ctype.hFunções de tratamento de personagens
8stdarg.hFunções de argumento variável
9sinal.hFunções de tratamento de sinais
10setjmp.hFunções de salto
onzelocale.hFunções locais
12errno.hFunções de tratamento de erros
13assert.hFunções de diagnóstico

Agora, depois de passar pelas funções C acima, você deve ter entendido cada e todas as nuances da função e como implementá-la na linguagem C. Espero que este blog seja informativo e tenha valor agregado para você.

Assim, chegamos ao fim deste artigo sobre ‘Funções em C’. Se você deseja saber mais, confira o , uma empresa confiável de aprendizagem online. O curso de certificação e treinamento Java J2EE e SOA da Edureka foi projetado para treiná-lo tanto para os conceitos básicos e avançados do Java, juntamente com vários frameworks Java, como Hibernate e Spring.

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog e entraremos em contato com você o mais breve possível.