Sobrecarga de função em c

Sobrecarga de função em c
A sobrecarga de funções é um conceito muito conhecido usado em idiomas orientados a objetos, tendo muitas funções com o mesmo nome e parâmetros diferentes em um único código. As linguagens de programação orientadas a objetos que suportam a sobrecarga da função incluem Java e C++. Como o compilador C não permite que ele seja usado no código, não é fácil implementar sobrecarga de funções em c. Ainda; Ainda podemos alcançar a mesma coisa com alguma técnica. Vamos começar este artigo com a abertura do terminal da Shell do Ubuntu 20.04 LTS.

Pré-requisitos

  • Instale o Ubuntu 20.04 LTS
  • Instale o compilador GCC
  • Obtenha acesso aos direitos do sudo

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.