C - Funções
Uma função é um grupo de instruções que juntas executam uma tarefa. Todo programa C tem pelo menos uma função, que é main() , e todos os programas mais triviais podem definir funções adicionais.
Você pode dividir seu código em funções separadas. Como você divide seu código entre diferentes funções depende de você, mas logicamente a divisão é tal que cada função executa uma tarefa específica.
Uma função declaração informa ao compilador sobre o nome de uma função, tipo de retorno e parâmetros. Uma função definição fornece o corpo real da função.
A biblioteca padrão C fornece várias funções internas que seu programa pode chamar. Por exemplo, strcat() para concatenar duas strings, memcpy() para copiar um local de memória para outro local e muitas outras funções.
Uma função também pode ser referida como um método ou uma sub-rotina ou um procedimento, etc.
Definindo uma função
A forma geral de uma definição de função na linguagem de programação C é a seguinte:
return_type function_name( parameter list ) { body of the function }
Uma definição de função na programação C consiste em um cabeçalho de função e um corpo de função . Aqui estão todas as partes de uma função -
-
Tipo de devolução − Uma função pode retornar um valor. O tipo_retorno é o tipo de dados do valor que a função retorna. Algumas funções realizam as operações desejadas sem retornar um valor. Neste caso, o tipo_de_retorno é a palavra-chave void .
-
Nome da função − Este é o nome real da função. O nome da função e a lista de parâmetros juntos constituem a assinatura da função.
-
Parâmetros − Um parâmetro é como um espaço reservado. Quando uma função é invocada, você passa um valor para o parâmetro. Esse valor é chamado de parâmetro ou argumento real. A lista de parâmetros refere-se ao tipo, ordem e número dos parâmetros de uma função. Os parâmetros são opcionais; ou seja, uma função não pode conter parâmetros.
-
Corpo da função − O corpo da função contém uma coleção de instruções que definem o que a função faz.
Exemplo
Dado abaixo é o código-fonte para uma função chamada max() . Esta função recebe dois parâmetros num1 e num2 e retorna o valor máximo entre os dois −
/* function returning the max between two numbers */ int max(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; }
Declarações de função
Uma função declaração informa ao compilador sobre um nome de função e como chamar a função. O corpo real da função pode ser definido separadamente.
Uma declaração de função tem as seguintes partes -
return_type function_name( parameter list );
Para a função definida acima max(), a declaração da função é a seguinte −
int max(int num1, int num2);
Os nomes dos parâmetros não são importantes na declaração da função, apenas seu tipo é necessário, portanto, o seguinte também é uma declaração válida -
int max(int, int);
A declaração de função é necessária quando você define uma função em um arquivo de origem e chama essa função em outro arquivo. Nesse caso, você deve declarar a função no topo do arquivo que está chamando a função.
Chamando uma função
Ao criar uma função C, você dá uma definição do que a função tem que fazer. Para usar uma função, você terá que chamar essa função para executar a tarefa definida.
Quando um programa chama uma função, o controle do programa é transferido para a função chamada. Uma função chamada executa uma tarefa definida e quando sua instrução de retorno é executada ou quando sua chave de fechamento de função é atingida, ela retorna o controle do programa de volta ao programa principal.
Para chamar uma função, basta passar os parâmetros necessários junto com o nome da função e, se a função retornar um valor, você poderá armazenar o valor retornado. Por exemplo -
Demonstração ao vivo
#include <stdio.h> /* function declaration */ int max(int num1, int num2); int main () { /* local variable definition */ int a = 100; int b = 200; int ret; /* calling a function to get max value */ ret = max(a, b); printf( "Max value is : %d\n", ret ); return 0; } /* function returning the max between two numbers */ int max(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; }
Mantivemos max() junto com main() e compilamos o código-fonte. Ao executar o executável final, ele produziria o seguinte resultado -
Max value is : 200
Argumentos de função
Se uma função deve usar argumentos, ela deve declarar variáveis que aceitam os valores dos argumentos. Essas variáveis são chamadas de parâmetros formais da função.
Parâmetros formais se comportam como outras variáveis locais dentro da função e são criados na entrada na função e destruídos na saída.
Ao chamar uma função, existem duas maneiras pelas quais os argumentos podem ser passados para uma função –
Nº Sr. | Tipo e descrição da chamada |
---|---|
1 | Chamada por valor Este método copia o valor real de um argumento no parâmetro formal da função. Nesse caso, as alterações feitas no parâmetro dentro da função não têm efeito no argumento. |
2 | Chamada por referência Este método copia o endereço de um argumento no parâmetro formal. Dentro da função, o endereço é usado para acessar o argumento real usado na chamada. Isso significa que as alterações feitas no parâmetro afetam o argumento. |
Por padrão, C usa chamar por valor para passar argumentos. Em geral, isso significa que o código dentro de uma função não pode alterar os argumentos usados para chamar a função.
Linguagem C