Neste tutorial, você aprenderá a criar funções definidas pelo usuário em programação C com a ajuda de um exemplo.
Uma função é um bloco de código que executa uma tarefa específica.
C permite definir funções de acordo com sua necessidade. Essas funções são conhecidas como funções definidas pelo usuário. Por exemplo:
Suponha que você precise criar um círculo e colorir de acordo com o raio e a cor. Você pode criar duas funções para resolver este problema:
createCircle()
funçãocolor()
função
Exemplo: função definida pelo usuário
Aqui está um exemplo para adicionar dois inteiros. Para realizar esta tarefa, criamos um definido pelo usuário addNumbers()
.
#include int addNumbers(int a, int b); // function prototype int main() ( int n1,n2,sum; printf("Enters two numbers: "); scanf("%d %d",&n1,&n2); sum = addNumbers(n1, n2); // function call printf("sum = %d",sum); return 0; ) int addNumbers(int a, int b) // function definition ( int result; result = a+b; return result; // return statement )
Protótipo de função
Um protótipo de função é simplesmente a declaração de uma função que especifica o nome da função, parâmetros e tipo de retorno. Não contém corpo de função.
Um protótipo de função fornece informações ao compilador de que a função pode ser usada posteriormente no programa.
Sintaxe do protótipo de função
returnType functionName (type1 argument1, type2 argument2,…);
No exemplo acima, int addNumbers(int a, int b);
é o protótipo da função que fornece as seguintes informações ao compilador:
- nome da função é
addNumbers()
- tipo de retorno da função é
int
- dois argumentos do tipo
int
são passados para a função
O protótipo da função não é necessário se a função definida pelo usuário for definida antes da main()
função.
Chamando uma função
O controle do programa é transferido para a função definida pelo usuário ao chamá-la.
Sintaxe de chamada de função
functionName (argumento1, argumento2,…);
No exemplo acima, a chamada da função é feita usando uma addNumbers(n1, n2);
instrução dentro da main()
função.
Definição de função
A definição de função contém o bloco de código para realizar uma tarefa específica. Em nosso exemplo, somar dois números e retorná-los.
Sintaxe de definição de função
returnType functionName (type1 argument1, type2 argument2,…) (// corpo da função)
Quando uma função é chamada, o controle do programa é transferido para a definição da função. E, o compilador começa a executar os códigos dentro do corpo de uma função.
Passando argumentos para uma função
Na programação, o argumento se refere à variável passada para a função. No exemplo acima, duas variáveis n1 e n2 são passadas durante a chamada da função.
Os parâmetros aeb aceitam os argumentos passados na definição da função. Esses argumentos são chamados de parâmetros formais da função.
O tipo de argumento passado para uma função e os parâmetros formais devem corresponder, caso contrário, o compilador irá gerar um erro.
Se n1 for do tipo char, a também deve ser do tipo char. Se n2 for do tipo float, a variável b também deve ser do tipo float.
Uma função também pode ser chamada sem passar um argumento.
Declaração de Devolução
A instrução de retorno termina a execução de uma função e retorna um valor para a função de chamada. O controle do programa é transferido para a função de chamada após a instrução return.
No exemplo acima, o valor da variável de resultado é retornado para a função principal. A variável de soma na main()
função recebe este valor.
Sintaxe da declaração de retorno
return (expressão);
Por exemplo,
return a; retorno (a + b);
O tipo de valor retornado da função e o tipo de retorno especificado no protótipo da função e na definição da função devem corresponder.
Visite esta página para saber mais sobre como passar argumentos e retornar o valor de uma função.