[Powered by Google Translate] CHRIS GERBER: Una función es una serie de pasos dentro de un
programa más grande, que normalmente se destina a ser llamado
varias veces y de varias otras localidades
el programa.
Al crear una función C, uno de los requisitos es
especificar un tipo de valor de retorno.
El caso más simple es una situación en la que la llama
código no se refiere con el resultado de la función.
Este podría ser el caso cuando se está imprimiendo datos a la
para mostrar del usuario, al igual que printf.
En este caso, se puede declarar un valor de retorno
ser de tipo void.
Usando vacío simplemente le dice al compilador que no
valor será devuelto.
Vamos a ver cómo se ve.
>> Digamos que tenemos una función llamada decir_hola que
toma un argumento.
Vamos a pasar el nombre de una persona y se mostrará un saludo
en la pantalla.
El nombre será de tipo char *.
Y vamos a especificar que como argumento.
Mi aplicación no tiene por qué saber lo que estaba impreso o si
se imprimió.
Así, el valor devuelto será de tipo void.
Esta función se puede imprimir en la pantalla con un comando como
printf ("Hola,% s \ n
", Nombre);.
El saludo se mostrará y el control se pasa
volver al código de llamada.
Una cosa a tener en cuenta es que cuando el tipo de valor de retorno es nulo,
no es necesario que incluya una declaración de
declaración de la función.
Si opta por incluir una, no se incluye un valor de retorno
como argumento.
>> En algunos casos, tiene sentido para devolver una
valor de una función.
Digamos que estábamos escribiendo una función llamada add_floats.
Vamos a pasar dos argumentos, ambos flotadores,
llama primero y segundo.
Y nos dirá cuál es la suma de los flotadores es.
Sabemos que si sumamos dos flotadores juntos, el resultado
será un flotador.
Teniendo en cuenta que, elegimos un tipo de retorno de flotador.
Esta función será realizar este cálculo y volver
los valores de una declaración como la devolución
primero + segundo;.
Cuando el control se devuelve al código de llamada, el
El valor resultante está disponible para ese código.
Podemos almacenar este valor, así: float resultado =
add_floats (3,14, 1,62
).
Resultado en este caso ahora contendría el valor 4,76.
>> Como recordatorio, los valores de punto flotante son imprecisas.
Así que si se trataba de un cálculo financiero, utilizando dólares y
centavos de dólar, es posible que desee considerar un tipo de datos precisos, tales como
int y realizar el cálculo en peniques.
>> Otro caso en el que se desea devolver un valor desde una
Se presenta cuando queremos saber si una función se
exitosa.
Si no se ha realizado correctamente, también puede querer saber qué tipo de
error.
Digamos que estamos intentando abrir un archivo en el disco para contar
el número de caracteres en ella.
Si el archivo no se puede abrir, que quiere ser capaz de detener y
informar al usuario sobre el problema.
>> Llamaremos a nuestros count_file_chars función y lo hará
tomar un argumento.
Vamos a pasar en el nombre del archivo usando una
char * nombre del archivo llamado.
Esta función podría ser algo como esto.
En este ejemplo, se esperaría que el número devuelto a
ser 0 o más.
Esto nos deja a los enteros negativos
utilizar como valores de centinela.
Un valor centinela es simplemente un valor especial que no es
datos legítimos, pero que transmitir la información.
En este caso, si vuelvo un -1 al código de llamada, estoy
de enviar el mensaje de que ha ocurrido un error mientras
tratando de acceder al archivo.
Entonces podría comprobar que el valor de retorno para determinar si mi
llamada a la función se realizó correctamente.
Si el número es 0 o mayor, me gustaría saber el
número de caracteres en el archivo.
Si, sin embargo, el número fue de menos de 0, podría simplemente
imprimir un problema que había ocurrido.
Una solución de compromiso a tener en cuenta es que al reservar todo el
valores negativos como valores centinela, asumiendo que este es un
32-bit entero, he quitado esencialmente en torno a
2 mil millones posibles valores devueltos.
>> Tipos de valor devueltos de valor son uno de los elementos más importantes de
llamadas a funciones.
Esperemos que este breve resumen le haya ayudado a pensar en
tres tipos fundamentales: vacíos, valores de resultado, y los valores centinela,
y cuando cada uno de los tres podrían estar
correspondiente en el código.
Gracias por su atención.