Construcción de funciones

Las funciones son un conjunto de instrucciones que realizan una tarea específica. Son básicas en el desarrollo de un programa cuyo tamaño sea considerable, puesto que permiten dividir el código en fragmentos pequeños que realicen una acción en específico, facilitando su comprensión y la corrección de errores. A estas divisiones de código también se les conoce como módulos o subprogramas. El código de las funciones se pueden escribir dentro de la función main() o fuera de ella.

Una vez que tenemos escrita una función es necesario ejecutarla. Comúnmente se dice “llamar a la función” y para llamarla se puede hacer desde la función principal main()  o  desde cualquier otra  función del programa.

Al igual que con las variables, las funciones pueden declararse y definirse. Una declaración es simplemente una presentación, una definición contiene las instrucciones con las que realizará su trabajo la función.

Estructura de una función

En general, la definición de una función se compone de las siguientes secciones:

tipo_a_devolver.  Todas las  funciones tienen la posibilidad  de devolver un valor, aunque pueden no hacerlo.  Si definimos una función que nos calcula el coseno de un  cierto ángulo nos interesaría que nuestra función devolviese ese valor. Si  por el contrario nuestra función realiza el proceso de borrar la pantalla no existiría ningún valor que nos interese conocer sobre esa función. Si no se especifica ningún parámetro el  compilador  supondrá  que  nuestra  función devuelve un valor entero (int). Puede usarse la palabra void para el caso en el cual no se desee devolver algún resultado.

identificador de la función. Es el nombre con  el que vamos a llamar a la función dentro de nuestro  programa,  seguido  de  una  lista  de  parámetros entre paréntesis y separados  por comas: (tipo1 parámetro1, tipo2 parámetro 2,...) estos parámetros representan los valores que se envían a la función para que el código que escribamos dentro de ella pueda modificarlos. En el caso de la función coseno que se menciono antes, el parámetro sería el ángulo con el cual queremos calcular el coseno. Los parámetros son de gran importancia, ya que si no  pudiésemos definir  un parámetro  para nuestra función  coseno,  tendríamos  que  definir  una  función para cada ángulo, en la que obviamente no indicaríamos ningún parámetro.

código de la función. En primer  lugar declaramos  las llaves { } que indicaran el inicio y fin de nuestra función.  En seguida se declaran las variables  locales.  Estas  variables  solamente  podrán  ser  utilizadas dentro  de la función,  es decir, solo son útiles para la función donde fueron declaradas y fuera de ella son desconocidas.

Con respecto al código de  la función, simplemente se trata de las instrucciones que deseamos que la función realice, por ejemplo obtener el coseno del ángulo que se recibió como parámetro.

Return. Se escribe al final antes de la llave } que cierra la declaración de la función. La instrucción return se encarga de indicar que valor se obtuvo como resultado y que es el valor que se desea devolver a la instrucción que “llamó” a la función. Por ejemplo,  alguna instrucción llamó a la función calcular coseno y le envío como parámetro el valor del ángulo, ahora la función va a calcular el valor del coseno utilizando dicho ángulo y lo que obtenga como resultado lo reportará a la instrucción. La instrucción return  puede  omitirse si la función  no  devuelve ningún  valor.  En otros lenguajes,  las funciones que  no devuelven valores se conocen como procedimientos.

Los  prototipos de la función son  una predeclaración de la función,  solo indican el  tipo de dato que se devuelve,  su nombre y  los tipos de los parámetros, no  es necesario indicar un identificador para los parámetros. Los prototipos se declaran al inicio del programa después de las librerías.