En programación, una función es una sección independiente de un programa que realiza una tarea determinada. Por ejemplo, si se quiere hacer un programa que sea una calculadora, será buena práctica hacer una función para la operación suma, otra función para la operación resta, otra función para la operación multiplicación y otra función para la operación división.
Toda función trabaja con una serie de conceptos muy específicos. Estos son:

- Parámetros: valores de entrada que recibe la función. Una función puede no recibir parámetros. En una función suma de dos números, los parámetros serían los dos números que se quisieran sumar.
- Implementación: la función es definida por una sección de código que desempeña la tarea para la cual ha sido asignada. En nuestra función suma, estaríamos hablando de sumar los dos números recibidos como parámetros.
- Valor de retorno: valor que devuelve la función como resultado de las tareas realizadas. En el caso de la función suma, devolvería el resultado de sumar los dos valores de entrada.
De hecho, cuando programamos en C necesitamos siempre de una función main para poder crear un programa. Por ello, siempre que creamos un programa estamos trabajando con al menos una función. Sin embargo, para programas muy amplios, se recomienda siempre dividir un programa en funciones. Esto nos permite estructurar mejor nuestro código y evitar errores.
Por otro lado, las funciones nos permiten reutilizar código. Hay ciertas ocasiones en las que un programa necesita hacer muchas veces una misma tarea. Así, si necesito calcular la longitud de una cadena de caracteres muchas veces durante la ejecución de mi programa, puedo o bien calcular la longitud de esta cada vez que lo necesite o llamar a una función que haga el cálculo por mí. Con esto ahorramos líneas de código y hacemos que nuestro programa sea más eficiente al no utilizar recursos innecesarios.
Para seguir aprendiendo…
Utm: Funciones. Tipos de funciones y Recursividad
Wikilibros: Programación en C/Uso de funciones
MicrosoftDocs: Función main y ejecución del programa