1

Funciones en C: Estructura básica de una función en C... y como llamar una función en otra función

Un función es un bloque o trozo de código que realiza una tarea específica. Una función puede ser llamada en otra función y la intención de usar funciones es evitar repetir código y tener el código mejor organizado para que sea mas legible.

La estructura general de una función en C es la siguiente:

tipo_de_retorno nombre_de_la_función (lista_de_parámetros) 
{
	cuerpo_de_la_función 
	return expresión
}

Donde:

tipo_de_retorno: es el tipo del valor devuelto por la función, o, en caso de que la función no devuelva valor alguno, puede usarse la palabra reservada void.
nombre_de_la_función: es el nombre asignado a la función y con el cual será llamada en otra función si así se requiere.
lista_de_parámetros: es la lista de declaración de los parámetros que son pasados a la función. Éstos se separan por comas. Debemos tener en cuenta que pueden existir funciones que no utilicen parámetros.
cuerpo_de_la_función: está compuesto por un conjunto de sentencias que llevan a cabo la tarea específica para la cual ha sido creada la función.
return expresión: mediante la palabra reservada return, se devuelve el valor de la función, en este caso representado por expresión.

.
A continuación veremos un ejemplo de una función add, la cual suma dos números y es llamada en la función main

int main(int c, int d)
{
	printf("Introduce el primer número que quieres sumar: ");
	scanf("%d", &c);

	printf("Introduce el segundo número que quieres sumar: ");
	scanf("%d", &d);

	printf("La suma de %d + %d es igual a %d\n", c, d, add(c, d)); // en esta línea estamos llamando a la función addreturn0;

}

int add(int a, int b)
{
	int addition;

	addition = a + b;return addition;

}

Para llamar a una función en otra función, lo que hacemos es colocar el nombre de la función que queremos llamar en la función donde la queremos llamar y en el lugar donde la queremos utilizar. Por ejemplo, tal como lo hacemos en el siguiente ejemplo:

printf("La suma de %d + %d es igual a %d\n", c, d, add(c, d)); // en esta línea estamos llamando ala función add

Algo que debemos tener en cuenta son los parámetros que le pasaremos a esa función que hemos llamado. Por ejemplo, cuando llamamos a la función add en la función main le pasamos los parámetros c, d, que si notamos son los parámetros que de la función main.*

Aquí hay que estar muy pendientes porque dependiendo del orden en que se le pasan los parámetros a la función que hemos llamado así esta ejecutará el código.

  • NOTA: *Prepararé un tutorial para explicar cómo pasar variables por valor (passing by value) y por referencia (passing by reference). Mientras tanto recomiendo leer sobre este tema en el siguiente enlace: Passing by Value vs. by Reference Visual Explanation.

    Espero que este tutorial te haya ayudado a entender sobre las funciones en C y te haya permitido entender lo básico de como se llaman una función en otra función (porque una función se puede llamar así misma - eso se llama recursión).

<h1>Te invito a que me dejes tus preguntas y aportes en la caja de comentarios (e incluso lo que mejorarías en este tutorial)</h1> <h1>Te reto a que realices una función div que divida dos números enteros y la llames en la función main de tu programa. Intercambia los parámetros que le pasas a la función div al ser llamada y mira que sucede.</h1>
Escribe tu comentario
+ 2
3
10700Puntos

Te invito a que me dejes tus preguntas y aportes en la caja de comentarios (e incluso lo que mejorarías en este tutorial).

Te reto a que realices una función div que divida dos números enteros y la llames en la función main de tu programa. Intercambia los parámetros que le pasas a la función div al ser llamada y mira que sucede.

2
10700Puntos

¡IMPORTANTE!

El de arriba es un código ejemplo pero no tiene incluida la declaración de la función add ni la llamada a la librería (no los copié).

Si la definición de una función es escrita antes de la función main la declaración no es requerida. No obstante, si la definición de la función es escrita después de la función main debemos declarar la función antes de la función main.*

  1. El código en el caso en el que se define la función add después de la función main:
#include<stdio.h>intadd(int a, int b); // declaración de la funciónintmain(int c, int d){
	printf("Introduce el primer número que quieres sumar: ");
	scanf("%d", &c);

	printf("Introduce el segundo número que quieres sumar: ");
	scanf("%d", &d);

	printf("La suma de %d + %d es igual a %d\n", c, d, add(c, d));

	return0;

}

// definición de la funciónintadd(int a, int b){
	int addition;

	addition = a + b;

	return addition;

}
  1. El código en el caso en el que se define la función add antes de la función main:
#include<stdio.h>intadd(int a, int b){
	int addition;

	addition = a + b;

	return addition;
}

intmain(int c, int d){
	printf("Introduce el primer número que quieres sumar: ");
	scanf("%d", &c);

	printf("Introduce el segundo número que quieres sumar: ");
	scanf("%d", &d);

	printf("La suma de %d + %d es igual a %d\n", c, d, add(c, d));

	return0;

}

NOTA: *En otro tutorial estaré compartiendo sobre la diferencia entre la declaración y la definición de una función. De momento, es importante saber que la declaración de una función se conoce también como prototipo de la función y que en el prototipo de una función no se especifican las sentencias que forman parte de la misma, sino sus características, es decir, el tipo de retorno, nombre de la función y la lista de parámetros seguidos de punto y coma. Como sigue:

tipo_de_retorno nombre_de_la_función(lista_de_parámetros);