Pré-requisitos
Exemplo 01: sobrecarga de função em c
Vamos começar nosso primeiro exemplo para ver como a sobrecarga da função simplesmente falha na linguagem C. Temos que utilizar a instrução "Touch" no shell do terminal para criar um novo documento do tipo C. Para abrir este novo arquivo, você precisa de um editor de arquivos. Temos utilizado o editor "GNU Nano" para abri -lo.
Executar as seguintes instruções afixadas para começar.
Teste de Touch.c
$ nano teste.c
Após o lançamento do arquivo em um editor, incluímos como definimos dois cabeçalhos de entrada padrão definidos pelo usuário. Após o cabeçalho, definimos dois métodos definidos pelo usuário com um nome semelhante e parâmetros diferentes, eu.e., "Cal". O primeiro método definido pelo usuário, "Cal", leva 1 argumento do tipo inteiro, enquanto o outro método "cal" leva dois argumentos do tipo inteiro. A primeira função foi simplesmente multiplicar o valor inteiro passado por si mesmo e salvá -lo em outra variável do tipo inteiro, "T" que acabou de ser inicializado.
Depois disso, o valor calculado seria exibido no shell através da declaração "printf" usada nele. A outra função leva dois valores inteiros em seu argumento e usa os valores passados para calcular o total multiplicando ambos. Os valores calculados seriam impressos no shell conforme a instrução "printf".
Dentro do método main (), estamos chamando os dois métodos um após o outro. O primeiro método foi chamado enquanto tem 1 valor inteiro paramétrico nele. A outra função de mesmo nome foi chamada ao passar dois valores do tipo inteiro em seus parâmetros. O método principal é fechado aqui.
Salve este código e saia do arquivo. Use o pacote "GCC" para compilar o código e veja os erros de sobrecarga de função. O comando foi dado na saída da imagem abaixo. Você pode ver que a compilação deste arquivo lança muitas exceções devido ao mesmo nome das funções.
Executar a seguinte instrução afixada.
Teste $ GCC.c
Exemplo 02: Alternativa para funcionar sobrecarga
Dentro deste exemplo, deixaremos você saber sobre o método alternativo de implementar sobrecarga de funções. Abrimos o mesmo arquivo mais uma vez e adicionamos três pacotes de cabeçalho no topo com #include -chave. Definimos duas funções definidas pelo usuário com o mesmo nome com uma mudança de caractere nelas. Ambos os nomes de funções começam com "Cal".
O primeiro método tem tomado dois valores do tipo inteiro como argumento em seus parâmetros. Enquanto o outro tem tomado dois ponteiros do tipo personagem como um argumento em seus parâmetros. O primeiro método "cal" tem tomado esses dois valores inteiros e os adiciona. Os valores calculados seriam devolvidos ao método principal. Por outro lado, o outro método "cal" inicializou outro ponteiro do tipo de caractere, "Z".
O método strlen () é aplicado a ambas as variáveis de string para obter comprimentos, e o método malloc () foi aplicado ao comprimento para obter o tamanho da memória. O ponteiro "Z" tem recebido memória através do método malloc (), pois ele deve armazenar o valor da string. O método strcpy () é usado para copiar o valor da string da variável de ponteiro "x" para "z". Enquanto o método strcat () é usado para anexar o valor da variável de ponteiro "y" no final de "Z". O valor atualizado de "Z" foi devolvido ao método Main (). Definimos a declaração de função com a palavra -chave “_Generic”.
O método principal () está declarando duas variáveis inteiras a serem passadas para o primeiro método "cal ()". Dois ponteiros de caracteres foram inicializados com valores de string e passados para o segundo método "cal ()".
Compilou o código com o pacote "GCC". Após a execução deste código, obtivemos a soma de dois números inteiros e a string concatenada.
Executar as seguintes instruções afixadas para começar.
$ gcc novo.c
$ ./a.fora
Conclusão:
Este guia contém a ilustração de usar um método alternativo de sobrecarga de função em c. Cobrimos o exemplo para ver como a sobrecarga da função falha em C e como o termo _GeNeric pode nos salvar. Se você passou por este guia com cuidado, seria capaz de executar a sobrecarga de funções em C facilmente a partir de agora. Esperamos que você ache melhor este artigo.