funciones en c

Páginas: 8 (1956 palabras) Publicado: 6 de agosto de 2014
6. Funciones

81

6
Funciones
Introducción
Una de las formas más adecuadas de resolver un problema de programación
consiste en descomponerlo en subproblemas. A cada uno de ellos se le asocia una
función que lo resuelve, de tal modo que la solución del problema se obtiene por
medio de llamadas a funciones. A su vez, cada función puede descomponerse en
subfunciones que realicen tareasmás elementales, intentando conseguir que cada
función realice una y sólo una tarea.
En Lenguaje C una función se define de la siguiente forma:
tipo NombreFunción (parámetros formales)
{
...
cuerpo de la función
...
}
El tipo es el tipo de dato que devuelve la función por medio de la sentencia
return cuyo estudio se adelantó en la página 8. Cuando no se especifica un tipo, se
asume queel tipo devuelto es int. El NombreFunción es un identificador válido en
C. Es el nombre mediante el cual se invocará a la función desde main() o desde otras
funciones. Los parámetros formales son las variables locales mediante las cuales la
función recibe datos cuando se le invoca. Deben ir encerrados entre paréntesis.
Incluso si no hay parámetros formales los paréntesis deben aparecer. Lasiguiente
función devuelve el mayor de dos números enteros:
int mayor (int x, int y)
{
int max;
if (x > y) max = x;
else max = y;
return max;
}

82

Introducción al Lenguaje C

Al manejar funciones en C debemos tener en cuenta que a una función sólo se
puede acceder por medio de una llamada. Nunca se puede saltar de una función a otra
mediante una sentencia goto. Tampoco estápermitido declarar una función dentro de
otra.
En C, a diferencia de otros lenguajes, como Pascal, no existe distinción entre
funciones y procedimientos. Por ello, una función puede estar o no dentro de una
expresión. Si la función devuelve un valor, son válidas sentencias del tipo:
a = b * funcion (c, d);

Pero también podemos encontrar funciones solas en una línea de programa,
funcion (a, b,c);

incluso aunque la función devuelva algún valor. En ese caso la función realizaría la
tarea encomendada y el valor devuelto se perdería. Esto no provoca ningún error.
Por último, hemos de tener en cuenta que, aunque una función puede formar
parte de una expresión compleja, nunca se le puede asignar un valor. Por tanto, es
incorrecto escribir sentencias como
funcion () = variable;que sería tan improcedente como escribir
5 = variable;

El único método para que una función reciba valores es por medio de los
parámetros formales.

Argumentos de funciones
Los parámetros formales son variables locales que se crean al comenzar la
función y se destruyen al salir de ella. Al hacer una llamada a la función los
parámetros formales deben coincidir en tipo y en número con lasvariables utilizadas
en la llamada, a las que denominaremos argumentos de la función. Si no coinciden,
puede no detectarse el error. Esto se evita usando los llamados prototipos de
funciones que estudiaremos más adelante, en este capítulo.
Los argumentos de una función pueden ser:
• valores (llamadas por valor)
• direcciones (llamadas por referencia)

Llamadas por valor

6. Funciones83

En las llamadas por valor se hace una copia del valor del argumento en el
parámetro formal. La función opera internamente con estos últimos. Como las
variables locales a una función (y los parámetros formales lo son) se crean al entrar a
la función y se destruyen al salir de ella, cualquier cambio realizado por la función en
los parámetros formales no tiene ningún efecto sobre losargumentos. Aclaremos esto
con un ejemplo.

#include
void main ()
{
int a = 3, b = 4;
intercambia (a, b);
printf ("\nValor de a: %d - Valor de b: %d", a, b);
}
void intercambia (int x, int y)
{
int aux;
aux = x;
x = y;
y = aux;
}

La salida de este programa es:
Valor de a: 3 - Valor de b: 4
es decir, NO intercambia los valores de las variables a y b. Cuando se hace la
llamada...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Funciones C++
  • Funciones en C
  • Funciones C++
  • Funciones en c++
  • Funciones C++
  • Funciones C++
  • funciones en c
  • Funciones C++

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS