Tabla de contenidos
El código de un programa escrito en C se divide en funciones. Aunque similares a los “métodos” de Java, las funciones no están asignadas ni a una clase ni a un objeto. Una función en C se distingue sólo por su nombre. Dos funciones con igual nombre y con diferente número y tipo de parámetros se considera una definición múltiple, y por tanto un error.
Las funciones suelen encapsular una operación más o menos compleja de la que se deriva un resultado. Para ejecutar esta operación, las funciones pueden precisar la invocación de otras funciones (o incluso de ellas mismas como es el caso de las funciones recursivas).
Las funciones en un programa son entidades que dado un conjunto de datos (los parámetros), se les encarga realizar una tarea muy concreta y se espera hasta obtener el resultado. Lo idóneo es dividir tareas complejas en porciones más simples que se implementan como funciones. La división y agrupación de tareas en funciones es uno de los aspectos más importantes en el diseño de un programa.
Las funciones en C tienen el siguiente formato:
tipo_del_resultado NOMBRE(tipo_param1 param1, tipo_param2 param2, ... )
{
/* Cuerpo de la función */
}
Cuando se invoca una función se asignan valores a sus
parámetros y comienza a ejecutar el cuerpo hasta que se llega al final o se
encuentra la instrucción return
. Si la función devuelve un
resultado, esta instrucción debe ir seguida del dato a devolver. Por
ejemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | int search(int table[], int size) { int i, j; if (size == 0) { return 0; } j = 0; for (i = 0; i < size; i++) { j += table[i]; } return j; } |
La ejecución de la función comienza en la línea 4. Si el
parámetro size
tiene valor cero, la función termina y devuelve
el valor cero. Si no, se ejecuta el bucle y se devuelve el valor de la
variable j
. El tipo de la expresión que acompaña a la
instrucción return
debe coincidir con el tipo del resultado
declarado en la línea 1.
La llamada a una función se codifica con su nombre seguido de los valores de los parámetros separados por comas y rodeados por paréntesis. Si la función devuelve un resultado, la llamada se reemplaza por su resultado en la expresión en la que se incluye. Por ejemplo:
1 2 3 4 5 6 7 8 9 | int addition(int a, int b)
{
return (a + b);
}
int main()
{
int c;
c = c * addition(12, 32);
} |