tutorial de c 11. invocar funciones Invocar una función es invitarla a que se ejecute y eventualmente nos retorne el valor que devuelve, si alguno. En lo que se ejecuta una función invocada conviene imaginar que las acciones en la que invoca se detienen,, esperando el desenlace de la invocada. La forma típica de invocar una función que retorna exactamente un valor es mediante una asignación, esto es, asignando a una variable el valor retornado por la función invocada. Su formato es. var = función(parámetros); Los parámetros son pasados a la función (si alguno) y el valor retornado es asignado a la variable. Si la función no retorna valor de manera implícita con un return (y, por tanto se ha indicado al redactarla que el tipo que retorna es vacío (void), sencillamente se invoca, sin asignar su valor. función(parámetros); Es claro que una función que retorna exactamente un valor puede constituir o formar parte de una expresión, pero no cuando no retorna exactamente un valor mediante un return. return En cualquier caso, una función realiza una tarea relativamente simple de manera general. Cuando un parámetro de una función es pasado por valor (que la función saca una copia local del valor, pero que si lo cambia estos cambios no son vistos por la func función ión que la invoca), se puede usar una constante, una variable y cualquier expresión válida que produzca un valor del tipo esperado por la función. Pero si el parámetro pasado a la función no es por valor, sino por referencia, hay que usar una variable para lograrlo, y es claro que el valor de la variable pasada por referencia, si es cambiado por la función invocada, tal cambio es acusado al regreso en la función que invoca. Para indicar que un parámetro es pasado por referencia se usa el operador de indirección & delante del nombre de la variable que constituye el valor pasado por referencia. Y para recibirlo (en la redacción de la función invocada con el valor pasado por referencia) se usa el operador de indirección * delante del nombre la variable y después del tipo correspondiente. Si la función invocada forma parte de un librería estándar, hay que utilizar una sentencia #include <librería.h> , en la cabecera del programa para que el compilador pueda encontrarla y encadenarla al programa. Lo mismo aplica si la función ha sido incluida por el programador en una librería propia. estándar dar o propietaria, entonces los Pero si la función es no está incluida en una librería, ya sea están detalles del código de su redacción deben incluirse en el programa, ya sea primero que el código de la función main(), o después de ésta, en cuyo caso se inserta primero una declaración o prototipo de la función en la cabecera ra del programa. Para declarar una función, esto es, para indicar claramente que se va a usar en el programa y que no está en una librería estándar, se usa el formato: tipo nombre(parámetros); Cuando la función no retorna exactamente un valor con rreturn, eturn, el tipo se fija en void (vacío), como ya se dijo. Para cada parámetro se puede omitir el nombre de la variable y es pecificar solamente el tipo del parámetro. Si el parámetro es pasado por referencia, entonces se coloca el operador * luego del tipo tipo, si es exactamente un valor, y un par de corchetes, [ ], en el caso de que sea una var varia iable vector, es decir, que sean varios valores en una misma variable. Al pasar una variable vector a una función no se usa ni el operador de indirección ni los corchet corchetes. Basta colocar el nombre de la variable vector (arreglo). ecabrera, julio 2011