Funciones en c
Los programas se dividen en varios módulos para resolver los problemas usando el paradigma de la programación estructurada. Cada módulo puede representar una o más tareas a realizar para colaborar en el funcionamiento del algoritmo. Estos módulos son las denominadas funciones; grupos de sentencias que cumplen tareas específicas. Las ventajas de las funciones son: Mantenimiento sencillo de los programas. Los errores se pueden detectar más fácilmente. Reutilización de código. Las funciones se pueden llamar desde cualquier parte del programa; es decir, son externas o globales.
La estructura de una función es:
tipo_retorno nombre_función (tipo_dato argumento 1, tipo_dato argumento 2, tipo_dato argumento 3,………………, tipo_dato argumento n) { cuerpo de lafunción; //sentencias, declaración de variables return (expresión); }
Cuando no existe ningún valor de retorno se usa la palabra reservada void. Las variables declaradas dentro de la función son locales; no existen fuera de la función. Se pueden pasar los parámetros para los argumentos por valor o por referencia.
Los prototipos de las funciones se declaran en la cabecera del archivo fuentey terminan con punto y coma. En C no es obligatorio declarar una función en la cabecera; pero cuando se lo hace el compilador la revisa y la maneja como una solo sentencia Las funciones no se pueden anidar; no se puede implementar (definir) una función dentro de otra. Si no se coloca el tipo de retorno; C asume que la función tiene que retornar un tipo de dato entero. A las funciones queno devuelven ningún valor se les denomina procedimientos. Una función puede tener cualquier número de sentencias return. Se pueden devolver múltiples valores si se retorna un puntero (int *) a una estructura o a un arreglo (array).
El retorno permitido para la función main() depende del sistema operativo que se use. Para la ejecución de una función se debe proceder a llamarlas. Elllamado a una función se puede realizar desde cualquier expresión; desde otra función; aunque generalmente se lo hace desde la función principal denominada main(). El llamado a una función depende del prototipo de la misma. Aquí se hace la diferenciación entre declaración y definición (ocupa un espacio de memoria). Si una función no tiene argumentos de entrada se usa el parámetro void paraespecificar esa característica. Existen prototipos de funciones en los que no se tiene un número de argumentos especificado; para eso se usan los puntos sucesivos.
Ejemplo de prototipo sin número de argumentos definidos:
void nombreFunción(int x, …);
Para implementar este tipo de funciones hay que usar unas macros que están definidas en el archivo de cabecera stdarg.h. Para pasar losparámetros a una función se lo puede realizar de dos forma; siendo: Por valor. Por referencia. En el paso de parámetros por valor la función recibe una copia de los valores de los parámetros que se pasa en el llamado de la función.
Ejemplo: Llamado a una función: mascaraHost(255,255,255,0); Función recibe una copia de esos valores:
int mascaraHost(int oct1, int oct2, int oct3, intoct 4);
En el paso de parámetros por referencia se una variable especial denominada puntero. Con la referencia el compilador pasa la dirección de memoria del valor del parámetro de la función. Se usa los operadores * y &. A excepción de cuando se utilizan arrays. Ejemplo: Prototipo: void swap(int * a, int *b); Llamado a la función: swap(&a , &b);
Si una parámetro o argumento deentrada tienen el modificador const; eso significa que el compilador tomará a ese argumento como de solo lectura. El objetivo del modificador const es añadir seguridad a los parámetros que manejan las funciones. Ejemplo:
float calcularBW(const float audio, const int* video); Tarea:
Consultar que son los macros y como se crean. Con un ejemplo; explicar como se pueden usar macros como...
Regístrate para leer el documento completo.