[Powered by Google Translate] Chris Gerber: Unha función é unha serie de pasos dentro dun programa maior, que normalmente é destinado a ser chamado varias veces e de moitos outros locais en o programa. Ao crear unha función C, un dos requisitos é especificar un tipo de valor de retorno. O caso máis simple é unha situación en que o enlazando código non se preocupa o resultado da función. Este pode ser o caso cando estamos a impresión de datos para o exhibición do usuario, como con printf. Neste caso, podemos declarar un valor de retorno ser do tipo void. Usando baleiro simplemente di ao compilador que non valor será devolto. Imos ver o que iso parece. Imos dicir que temos unha función chamada say_hello que ten un argumento. Nós imos pasar o nome da persoa e ha amosar un saúdo na pantalla. O nome será do tipo char *. E nós imos indicar que como argumento. O meu programa non precisa saber o que foi impreso ou foi impreso. Así, o valor de retorno será do tipo void. Esta función pode imprimir a pantalla con un comando como printf ("Ola% s \ n "Nome);. A saúdo será amosado e control será pasado volver ao código de chamada. Unha cousa a notar é que, cando o tipo de valor de retorno é nulo, non necesita incluír un retorno declaración na función. Se vostede optar por incluír un, non incluír un valor de retorno como un argumento. Nalgúns casos, ten sentido para voltar unha valor dunha función. Imos dicir que estabamos a escribir unha función chamada add_floats. Nós imos pasar dous argumentos, ambos os coches alegóricos, chamado primeiro e segundo. E vai nos dicir o que a suma deses coches alegóricos é. Sabemos que, se sumarmos dous flotadores en conxunto, o resultado Será un flotador. Dado que, escollemos un tipo de retorno de boia. Esta función pode executar este cálculo e volver os valores nunha declaración como retorno + Primeiro segundo;. Cando o control é pasado de volta para o código de chamada, o valor resultante xa está dispoñible para este código. Podemos almacenar este valor así: resultado float = add_floats (3,14, 1,62 );. Resultado neste caso sería agora conter o valor 4,76. Como un recordatorio, valores de punto flotante son imprecisos. Así, este era un cálculo financeiro, usando dólares e centavos, pode querer considerar un tipo de datos precisos, como int e realizar o cálculo en moedas de un centavo. Outro caso en que quere retornar un valor dunha función é cando queremos saber se unha función foi exitoso. Se non foi exitosa, podemos tamén queren saber que tipo de erro. Imos dicir que estamos a tentar abrir un arquivo no disco para contar o número de caracteres na mesma. Se o ficheiro non puido ser aberto, queremos ser capaces de parar e informar ao usuario sobre o problema. Imos chamar count_file_chars nosa función e vai tomar un argumento. Nós imos pasar o nome do ficheiro mediante un char * chamado filename. Esta función pode parecer algo coma isto. Neste exemplo, sería de esperar a conta volveu ser 0 ou máis. Isto deixa-nos os números enteiros negativos usar-se como valores de centinela. Un valor centinela é simplemente un valor especial que non é datos lexítimos, pero non transmitir información. Aquí, se eu volver a -1 para o código de chamada, eu son realmente enviando a mensaxe de que houbo un erro mentres intentando acceder ao arquivo. Eu podería, entón, comprobar que o valor de retorno para determinar se o meu chamada de función foi exitosa. Se o número foi de 0 ou máis, gustaríame saber o número de caracteres no ficheiro. Se, con todo, o número foi inferior a 0, I podería simplemente imprimir un problema que ocorrera. Un trade-off a considerar é que, reservándose todos os valores negativos como valores de centinela, asumindo que se trata dun 32-bit enteiro, eu esencialmente levado en torno a 2000000000 posibles valores de retorno. Tipos de valores de retorno son un dos elementos máis importantes do chamadas de función. Esperemos que este pequeno resumo teña axudado a pensar sobre tres tipos principais: void, valores de resultado e os valores de Sentinela, e cando cada un dos tres poden ser apropiado no seu código. Grazas por asistir.