1 de agosto de 2016

Conceptos y estructura de las funciones (módulos de programa).

   Las funciones son un mecanismo de abstracción, y en el contexto de la programación estructurada, constituyen módulos o segmentos de código, que le permiten al programador encapsular determinada funcionalidad o característica en un bloque de código, con la finalidad de que éste pueda ser reutilizado y administrado de una mejor manera.

   Por otro lado, a la cualidad de escribir programas gobernados por módulos, es a lo que se le conoce como programación modular.

   La programación modular es una técnica de programación que consiste en identificar partes funcionales y reutilizables de un programa (abstracción), y encapsularlas en entidades que siguen una estructura propia. A dichas entidades se les denomina en el lenguaje de programación C como funciones.

   En C todos los módulos son funciones, a diferencia de otros lenguajes de programación, en los que los módulos pueden ser funciones, procedimientos, clases, etcétera.

   Un programa modular en C opera de la siguiente manera: la función main es la función principal (jefe), y es la encargada de delegar responsabilidades y/o solicitar servicios a otras funciones (sus subordinados), las cuales a su vez se pueden valer de otras funciones (colegas) para llevar a cabo su tarea. Lo anterior se ilustra en la siguiente figura:

Programación modular.

   Por último, pero no por ello menos importante, se debe recordar que cuando se trabaja con funciones, se requieren de tres aspectos muy importantes a considerar:
  1. Prototipo de función: es la firma de la función, y le indica al compilador el tipo de valor de retorno de la función, el nombre de la función, y el número y tipo de cada uno de los parámetros con los que trabajará.
  2. Llamado (invocación) de función: es el uso de la función, el llamado de la función se realiza a través de su nombre y de la lista de argumentos que requiere la función para trabajar.
  3. Definición de función: es en dónde se define el código que describe el funcionamiento de la función.
   Los tres aspectos anteriores mencionados son igualmente importantes. El primero de ellos se ha usado de manera implícita al incluir las bibliotecas de funciones del lenguaje, el segundo al utilizar (llamar) a las funciones de dichas bibliotecas.

   Por otro lado, la definición de funciones hasta ahora no se ha utilizado debido a que involucra la definición de las funciones escritas por el programador; resta entonces el establecer cómo definir nuestras propias funciones, lo cual se comentará en la entrada correspondiente a la Estructura para las funciones en C.