Page 145

Cap´ıtulo 3

Funciones Un momento despu´es, Alicia atravesaba el cristal, y saltaba ´agilmente a la habitaci´on del Espejo. Lewis Carroll, Alicia a trav´es del espejo. Vamos a estudiar la definici´ on y uso de funciones en C. El concepto es el mismo que ya estudiaste al aprender Python: una funci´ on es un fragmento de programa parametrizado que efect´ ua unos c´alculos y, o devuelve un valor como resultado, o tiene efectos laterales (modificaci´on de variables globales o argumentos, volcado de informaci´on en pantalla, etc.), o ambas cosas. La principal diferencia entre Python y C estriba en el paso de par´ametros. En este aspecto, C presenta ciertas limitaciones frente a Python, pero tambi´en ciertas ventajas. Entre las limitaciones tenemos la necesidad de dar un tipo a cada par´ ametro y al valor de retorno, y entre las ventajas, la posibilidad de pasar variables escalares y modificar su valor en el cuerpo de la funci´on (gracias al uso de punteros). Estudiaremos tambi´en la posibilidad de declarar y usar variables locales, y volveremos a tratar la recursividad. Adem´ as, veremos c´omo implementar nuestros propios m´odulos mediante las denominadas unidades de compilaci´ on y la creaci´on de ficheros de cabecera. Finalmente, estudiaremos la definici´ on y el uso de macros, una especie de ((pseudo-funciones)) que gestiona el preprocesador de C.

3.1.

Definici´ on de funciones

En C no hay una palabra reservada (como def en Python) para iniciar la definici´on de una funci´on. El aspecto de una definici´ on de funci´on en C es ´este: 1 2 3 4

tipo_de_retorno identificador ( par´ ametros ) { cuerpo_de_la_funci´ on }

El cuerpo de la funci´ on puede contener declaraciones de variables locales (t´ıpicamente en sus primeras l´ıneas). Aqu´ı tienes un ejemplo de definici´ on de funci´on: una funci´on que calcula el logaritmo en base b (para b entero) de un n´ umero x. La hemos definido de un modo menos compacto de lo que podemos hacer para ilustrar los diferentes elementos que puedes encontrar en una funci´on: 1 2 3

float logaritmo (float x, int b) { float logbase, resultado;

4

logbase = log10(b); resultado = log10(x)/logbase; return resultado;

5 6 7 8

}

Deteng´ amonos a analizar brevemente cada uno de los componentes de la definici´on de una funci´on e identifiqu´emoslos en el ejemplo: Introducci´ on a la Programaci´ on con C

139

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement