Em c, podemos dividir um programa grande em blocos de construção básicos conhecidos como função. A função contém o conjunto de instruções de programação delimitadas por {}. Uma função pode ser chamada várias vezes para fornecer reutilização e modularidade ao programa C. Em outras palavras, podemos dizer que a coleção de funções cria um programa. A função também é conhecida como procedimento ou sub-rotina em outras linguagens de programação.
Vantagem de funções em C
Existem as seguintes vantagens das funções C.
- Ao usar funções, podemos evitar reescrever a mesma lógica/código repetidas vezes em um programa.
- Podemos chamar funções C quantas vezes quiser em um programa e de qualquer lugar dele.
- Podemos rastrear facilmente um grande programa C quando ele é dividido em múltiplas funções.
- A reutilização é a principal conquista das funções C.
- No entanto, a chamada de função é sempre uma sobrecarga em um programa C.
Aspectos Funcionais
Existem três aspectos de uma função C.
SN | Aspectos da função C | Sintaxe |
---|---|---|
1 | Declaração de função | return_type nome_da_função (lista de argumentos); |
2 | Chamada de função | nome_da_função (lista_de_argumentos) |
3 | Definição de função | return_type function_name (lista de argumentos) {corpo da função;} |
A sintaxe de criação de função em linguagem c é fornecida abaixo:
return_type function_name(data_type parameter...){ //code to be executed }
Tipos de funções
Existem dois tipos de funções na programação C:
Valor de retorno
Uma função C pode ou não retornar um valor da função. Se você não precisar retornar nenhum valor da função, use void como tipo de retorno.
Vamos ver um exemplo simples de função C que não retorna nenhum valor da função.
Exemplo sem valor de retorno:
void hello(){ printf('hello c'); }
Se você deseja retornar qualquer valor da função, você precisa usar qualquer tipo de dados, como int, long, char, etc. O tipo de retorno depende do valor a ser retornado da função.
img alinhamento css
Vamos ver um exemplo simples de função C que retorna o valor int da função.
Exemplo com valor de retorno:
int get(){ return 10; }
No exemplo acima, temos que retornar 10 como valor, então o tipo de retorno é int. Se você deseja retornar um valor de ponto flutuante (por exemplo, 10,2, 3,1, 54,5, etc), você precisa usar float como o tipo de retorno do método.
float get(){ return 10.2; }
Agora, você precisa chamar a função para obter o valor da função.
Diferentes aspectos da chamada de função
Uma função pode ou não aceitar qualquer argumento. Pode ou não retornar qualquer valor. Com base nesses fatos, existem quatro aspectos diferentes das chamadas de função.
- função sem argumentos e sem valor de retorno
- função sem argumentos e com valor de retorno
- função com argumentos e sem valor de retorno
- função com argumentos e com valor de retorno
Exemplo de função sem argumento e valor de retorno
Exemplo 1
#include void printName(); void main () { printf('Hello '); printName(); } void printName() { printf('Javatpoint'); }
Saída
Hello Javatpoint
Exemplo 2
#include void sum(); void main() { printf(' Going to calculate the sum of two numbers:'); sum(); } void sum() { int a,b; printf(' Enter two numbers'); scanf('%d %d',&a,&b); printf('The sum is %d',a+b); }
Saída
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Exemplo de função sem argumento e com valor de retorno
Exemplo 1
travessia de árvore
#include int sum(); void main() { int result; printf(' Going to calculate the sum of two numbers:'); result = sum(); printf('%d',result); } int sum() { int a,b; printf(' Enter two numbers'); scanf('%d %d',&a,&b); return a+b; }
Saída
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Exemplo 2: programa para calcular a área do quadrado
estrutura de dados
#include int sum(); void main() { printf('Going to calculate the area of the square '); float area = square(); printf('The area of the square: %f ',area); } int square() { float side; printf('Enter the length of the side in meters: '); scanf('%f',&side); return side * side; }
Saída
Going to calculate the area of the square Enter the length of the side in meters: 10 The area of the square: 100.000000
Exemplo de função com argumento e sem valor de retorno
Exemplo 1
#include void sum(int, int); void main() { int a,b,result; printf(' Going to calculate the sum of two numbers:'); printf(' Enter two numbers:'); scanf('%d %d',&a,&b); sum(a,b); } void sum(int a, int b) { printf(' The sum is %d',a+b); }
Saída
Going to calculate the sum of two numbers: Enter two numbers 10 24 The sum is 34
Exemplo 2: programa para calcular a média de cinco números.
#include void average(int, int, int, int, int); void main() { int a,b,c,d,e; printf(' Going to calculate the average of five numbers:'); printf(' Enter five numbers:'); scanf('%d %d %d %d %d',&a,&b,&c,&d,&e); average(a,b,c,d,e); } void average(int a, int b, int c, int d, int e) { float avg; avg = (a+b+c+d+e)/5; printf('The average of given five numbers : %f',avg); }
Saída
Going to calculate the average of five numbers: Enter five numbers:10 20 30 40 50 The average of given five numbers : 30.000000
Exemplo de função com argumento e valor de retorno
Exemplo 1
#include int sum(int, int); void main() { int a,b,result; printf(' Going to calculate the sum of two numbers:'); printf(' Enter two numbers:'); scanf('%d %d',&a,&b); result = sum(a,b); printf(' The sum is : %d',result); } int sum(int a, int b) { return a+b; }
Saída
Going to calculate the sum of two numbers: Enter two numbers:10 20 The sum is : 30
Exemplo 2: Programa para verificar se um número é par ou ímpar
#include int even_odd(int); void main() { int n,flag=0; printf(' Going to check whether a number is even or odd'); printf(' Enter the number: '); scanf('%d',&n); flag = even_odd(n); if(flag == 0) { printf(' The number is odd'); } else { printf(' The number is even'); } } int even_odd(int n) { if(n%2 == 0) { return 1; } else { return 0; } }
Saída
Going to check whether a number is even or odd Enter the number: 100 The number is even
Funções da biblioteca C
Funções de biblioteca são funções embutidas em C que são agrupadas e colocadas em um local comum chamado biblioteca. Tais funções são usadas para realizar algumas operações específicas. Por exemplo, printf é uma função de biblioteca usada para imprimir no console. As funções da biblioteca são criadas pelos designers dos compiladores. Todas as funções da biblioteca padrão C são definidas dentro dos diferentes arquivos de cabeçalho salvos com a extensão .h . Precisamos incluir esses arquivos de cabeçalho em nosso programa para fazer uso das funções da biblioteca definidas nesses arquivos de cabeçalho. Por exemplo, para usar as funções da biblioteca como printf/scanf, precisamos incluir stdio.h em nosso programa, que é um arquivo de cabeçalho que contém todas as funções da biblioteca relacionadas à entrada/saída padrão.
A lista dos arquivos de cabeçalho mais usados é fornecida na tabela a seguir.
SN | Arquivo de cabeçalho | Descrição |
---|---|---|
1 | stdio.h | Este é um arquivo de cabeçalho de entrada/saída padrão. Ele contém todas as funções da biblioteca relacionadas à entrada/saída padrão. |
2 | conio.h | Este é um arquivo de cabeçalho de entrada/saída do console. |
3 | string.h | Ele contém todas as funções da biblioteca relacionadas a strings, como get(), puts(), etc. |
4 | stdlib.h | Este arquivo de cabeçalho contém todas as funções gerais da biblioteca como malloc(), calloc(), exit(), etc. |
5 | matemática.h | Este arquivo de cabeçalho contém todas as funções relacionadas às operações matemáticas, como sqrt(), pow(), etc. |
6 | hora.h | Este arquivo de cabeçalho contém todas as funções relacionadas ao tempo. |
7 | ctype.h | Este arquivo de cabeçalho contém todas as funções de manipulação de caracteres. |
8 | stdarg.h | Funções de argumento variável são definidas neste arquivo de cabeçalho. |
9 | sinal.h | Todas as funções de tratamento de sinal são definidas neste arquivo de cabeçalho. |
10 | setjmp.h | Este arquivo contém todas as funções de salto. |
onze | localidade.h | Este arquivo contém funções de localidade. |
12 | errno.h | Este arquivo contém funções de tratamento de erros. |
13 | afirmar.h | Este arquivo contém funções de diagnóstico. |
Detalhes adicionais sobre funções C são fornecidos abaixo:
Existem várias informações adicionais relacionadas às funções C. Alguns deles são os seguintes:
Programação Modular: A habilidade de dividir a programa enorme em módulos menores e mais gerenciáveis é um dos principais benefícios da utilização de funções em C. Cada função pode conter um trabalho específico ou componente de funcionalidade, o que simplifica e esclarece a estrutura geral do programa. Essa estratégia modular melhora a reutilização de código e facilita a manutenção e a depuração.
roda de rolagem não funciona
Reutilização de código: Ao usar funções, você pode criar um determinado algoritmo ou parte da lógica apenas uma vez e utilizá-lo repetidamente em todo o programa. Você pode simplesmente chamar a função sempre que precisar executar o código, evitando que você tenha que duplicá-lo em outro lugar. Não só acelera o desenvolvimento mas também garante consistência e diminui a possibilidade de cometer erros.
Encapsulamento e Abstração: Ao obscurecer as especificidades da implementação da funcionalidade, as funções oferecem um nível de abstração. A interface de um protótipo de função pode ser definida em um arquivo de cabeçalho , enquanto a implementação real pode ser fornecida em um arquivo de origem diferente. Outras partes do programa podem utilizar a função sem a necessidade de entender como ela é implementada internamente devido à separação entre interface e implementação.
Manutenção fácil do programa: Um programa pode ser compreendido e mantido mais facilmente se for dividido em funções menores. A capacidade de atribuir uma responsabilidade específica a cada função torna o código mais legível e facilita a solução de problemas e a depuração. Você pode se concentrar na função necessária sem afetar outras partes do programa se um erro for encontrado ou uma modificação for necessária.
Colaboração aprimorada: As funções permitem que os desenvolvedores que trabalham no mesmo projeto colaborem. O programa pode ser dividido em funções para que vários membros da equipe possam trabalhar funções diferentes de uma vez só. Os desenvolvedores podem integrar facilmente o seu trabalho nas funções se as interfaces forem bem especificadas, o que melhora a produtividade e promove um desenvolvimento eficaz.
Passando o parâmetro: Você pode enviar argumentos ou dados para uma função em C para que ela possa processá-los. A função pode realizar ações e gerar resultados usando essas entradas. Você pode aumentar a flexibilidade e adaptabilidade das funções passando parâmetros, o que aumentará a versatilidade geral do seu programa.
Valores de retorno: As funções podem enviar valores de volta ao código que as chamou, permitindo a comunicação dos resultados da execução da função. Você pode utilizar o valor retornado em outras áreas do programa após fazer cálculos ou manipulação de dados dentro da função. Valores de retorno são especialmente úteis quando você precisa calcular um resultado ou estabelecer uma condição dependendo da saída da função.
Conclusão:
Concluindo, as funções são essenciais para a programação C porque fornecem ao programa organização, reutilização e modularidade . Os desenvolvedores podem evitar a criação repetida do mesmo código, dividindo programas enormes em funções menores, tornando o código mais eficaz e mais simples de manter. Qualquer lugar do programa pode chamar uma função, proporcionando flexibilidade e melhorando o fluxo de controle.
O declaração, chamada , e definição de funções são apenas algumas de suas muitas características. O compilador é informado pela declaração de função do nome, argumentos , e tipo de retorno . É possível chamar uma função com ou sem parâmetros e com ou sem valor de retorno . Os programadores constroem funções definidas pelo usuário para melhorar a legibilidade e otimização de seu código, enquanto a biblioteca C funciona como imprimirf() e scanf() fornecer recursos predefinidos.
No geral, as funções são blocos de construção cruciais na programação C, proporcionando benefícios que incluem maior organização, reutilização de código e rastreamento simples de programas enormes. As chamadas de função podem adicionar alguma sobrecarga, mas suas vantagens superam o impacto mínimo no desempenho. Os programadores podem escrever programas C eficazes e modulares, compreendendo e usando funções.