Sobrecarga de funciones en c

Sobrecarga de funciones en c
La sobrecarga de funciones es un concepto muy conocido utilizado en idiomas orientados a objetos que tienen muchas funciones con el mismo nombre y diferentes parámetros en un solo código. Los lenguajes de programación orientados a objetos que admiten la sobrecarga de funciones incluyen Java y C++. Como el compilador C no permite que se use en el código, por lo tanto, no es fácil implementar la sobrecarga de funciones en C. Todavía; todavía podemos lograr lo mismo con alguna técnica. Comencemos este artículo con la apertura de la terminal de shell de Ubuntu 20.04 LTS.

Requisitos previos

  • Instalar Ubuntu 20.04 LTS
  • Instalar compilador GCC
  • Obtener acceso a los derechos de sudo

Ejemplo 01: sobrecarga de funciones en c

Comencemos nuestro primer ejemplo para ver cómo la sobrecarga de funciones simplemente falla en el lenguaje C. Tenemos que utilizar la instrucción de "tocar" dentro de la carcasa terminal para crear un nuevo documento de tipo C. Para abrir este nuevo archivo, necesita un editor de archivos. Hemos estado utilizando el editor "GNU Nano" para abrirlo.

Ejecutar las siguientes instrucciones fijadas para comenzar.

Prueba de $ touch.C
$ nano prueba.C

Después de iniciar el archivo en un editor, hemos incluido, ya que hemos definido dos encabezados de entrada estándar definidos por el usuario. Después del encabezado, hemos definido dos métodos definidos por el usuario con un nombre similar y diferentes parámetros, I.mi., "California". El primer método definido por el usuario, "Cal" toma 1 argumento del tipo entero, mientras que el otro método "Cal" toma dos argumentos de tipo entero. La primera función ha sido simplemente multiplicar el valor entero aprobado consigo mismo y guardarlo en otra variable de tipo entero, "t" que acaba de inicializarse.

Después de esto, el valor calculado se mostraría en el shell a través de la instrucción "printf" utilizada dentro de ella. La otra función toma dos valores enteros en su argumento y usa los valores aprobados para calcular el total multiplicando ambos. Los valores calculados se imprimirían en el shell según la instrucción "printf".

Dentro del método main (), hemos estado llamando a ambos métodos uno tras otro. El primer método se ha llamado mientras tiene 1 valor entero paramétrico en él. Se ha llamado a la otra función del mismo nombre al pasar dos valores de tipo entero en sus parámetros. El método principal se cierra aquí.

Guarde este código y salga del archivo. Use el paquete del compilador "GCC" para compilar el código y ver los errores de sobrecarga de funciones. El comando se ha dado en la salida de la imagen a continuación. Puede ver que la compilación de este archivo arroja muchas excepciones debido al mismo nombre de funciones.

Ejecutar las siguientes instrucciones fijadas.

Prueba de $ GCC.C

Ejemplo 02: Alternativa a la sobrecarga de funciones

Dentro de este ejemplo, le informaremos sobre el método alternativo para implementar la sobrecarga de funciones. Hemos abierto el mismo archivo una vez más y agregamos tres paquetes de encabezado en la parte superior con la palabra clave #include. Hemos definido dos funciones definidas por el usuario del mismo nombre con un solo cambio de carácter en ellas. Ambos nombres de funciones comienzan con "Cal".

El primer método ha sido tomar dos valores de tipo entero como argumento en sus parámetros. Mientras que el otro ha estado tomando dos punteros de tipo carácter como argumento en sus parámetros. El primer método "Cal" ha sido tomar estos dos valores enteros y agregarlos juntos. Los valores calculados se devolverían al método principal. Por otro lado, el otro método "Cal" inicializó otro puntero de tipo de personaje, "Z".

El método strlen () se aplica a ambas variables de cadena para obtener longitudes, y el método malloc () se ha aplicado a la longitud para obtener el tamaño de la memoria. El puntero "Z" ha estado obteniendo memoria a través del método Malloc (), ya que tiene que almacenar el valor de la cadena. El método strcpy () se usa para copiar el valor de cadena de la variable de puntero "x" a "z". Mientras que el método strcat () se usa para agregar el valor de la variable de puntero "y" al final de "z". El valor actualizado de "Z" se ha devuelto al método Main (). Hemos definido la declaración de función con la palabra clave "_generic".

El método main () está declarando dos variables enteros que se pasarán al primer método "cal ()". Se han inicializado dos punteros de caracteres con los valores de cadena y han pasado al segundo método "cal ()".

Compiló el código con el paquete "GCC". Tras la ejecución de este código, obtuvimos la suma de dos enteros y la cadena concatenada.

Ejecutar las siguientes instrucciones fijadas para comenzar.

$ GCC nuevo.C
ps ./a.afuera

Conclusión:

Esta guía contiene la ilustración del uso de un método alternativo de sobrecarga de funciones en C. Hemos cubierto el ejemplo para ver cómo la sobrecarga de funciones falla en C y cómo el término _generico puede salvarnos. Si ha pasado por esta guía con cuidado, podrá realizar una sobrecarga de funciones en C fácilmente a partir de ahora. Esperamos que pueda encontrar este artículo mejor.