[Powered by Google Translate] Funcións son seccións de código utilizadas dentro dun programa máis para realizar unha determinada tarefa. Eles tamén son coñecidos como procedementos, rutinas e subprogramas, unha vez que realmente son só mini programas dentro de programas. Aínda que pode non ter notado, definitivamente usar funcións se xa ten programado en C. Cando escribir cousas na pantalla empregando printf, está realmente usando unha función chamada printf. Do mesmo xeito, GetInt e GetString son funcións que CS50 ofrece para ti. Como desenvolvedores, usamos as funcións dun certo número de razóns. Tendo funcións para realizar tarefas comúns como a escrita para a pantalla e avisar o usuario para a entrada nos aforra tempo na programación. Non é necesario escribir código para facer as mesmas cousas unha vez que está xa fixo por nós. Non o é necesario para que poidamos entender exactamente como as funcións funcionan internamente. En vez diso, só ten que saber como usar ou chamalos nos nosos programas. Tamén é útil para escribir funcións en programas de maiores mesmo se non está a pensar en ter outros usalos, só para dividir a maior tarefa na man. Deste xeito, dáse a estrutura para o seu código moi parecido contigo daría estrutura para un ensaio, e con proxectos realmente grandes, permitir que varias persoas para traballar en diferentes partes ao mesmo tempo, xa que está claro que o traballo dunha persoa remata e outro comeza. Funcións tipicamente operan en unha ou máis entradas, coñecidos como argumentos ou parámetros, transformando eses insumos nun valor de saída, que despois é devolto. Con todo, tamén é posible ter funcións que non utilizan os argumentos de entrada e non retornan unha saída. Ok, chega co material brando. Imos dar un ollo a algunhas funcións reais en C. Aquí temos unha función chamada praza que, cren ou non, calcula o cadrado da entrada. Imos dissecar a sintaxe dela. A primeira palabra que ve na función, int, especifica o tipo de retorno da función, ou sexa, o tipo C de saída da función. Esta función pode xerar un valor co tipo int. A seguinte palabra que ve é o nome da función, a praza neste caso. Nomeando funcións de forma adecuada é especialmente importante unha vez que é, probablemente, a documentación máis visible do que a función fai. Pode ser legal para nomear esta función Shazam ou booyah, pero iso non nos di nada sobre o que a función fai. Seguindo o nome da función, veñen as entradas para a función, os argumentos. Eles están listados no interior dun conxunto de parénteses tanto co seu tipo e un nome a ser usado para eles dentro do corpo da función. Praza leva só un argumento, o int a praza, que eu decidir dar o nome x. Isto remata a declaración de función ou prototipo. As claves que rodean o resto da función denotan o inicio eo fin do corpo da función, a definición da función en si. Praza é unha función ben simple. El só ten unha liña, unha vez que todo o que temos que facer é multiplicar x por si só. O retorno palabra especifica o valor de saída e desencadea o final da función. Para utilizar a función cadrado, debemos proporcionar os insumos axeitados e capturar a saída. Aquí, vostede ve un par de formas de facelo. Podemos pasar un int prima, como 6 ou podemos pasar unha variable como un. Teña en conta que cada vez que chamamos de cadrado, que capturar a saída dunha variable e, a continuación, imprimir lo. Con todo, non temos para almacenar o valor de retorno nunha variable e despois imprimir. Nós poderiamos só enviá-lo directamente para printf como facemos cando cadrado 10, pero iso non significa que non temos acceso ao valor de retorno da praza 10 en calquera outra parte do código. Vexamos outro exemplo simple. Esta vez imos sumar dous coches alegóricos xuntos para que poidamos ver o que unha función parece cando ten dúas entradas, en vez de só 1. Como podes ver, non é moi diferente. Todo o que facemos é engadir o argumento segundo, un punto flotante chamado b, á lista de argumentos usando unha coma para separa-lo do primeiro argumento, flutuar un. Entón, a nosa praza e funcións suma son moi doado de entender porque son equivalentes ás funcións que xa viu antes na clase de matemáticas. Agora, imos ollar a unha función que é lixeiramente diferente. En vez de voltar un valor, que modifica un estado. Isto é coñecido como tendo un efecto colateral. Neste programa, a función printf_fudd_style ten un tipo de retorno que non vimos antes, baleiro. Baleiro é usada para dicir que unha función non retorna nada. Non hai variables de tipo void por iso, se tentar voltar algo dunha función como printf_fudd_style, o compilador vai berrar con vostede. Dentro printf_fudd_style, vemos que mentres a función aínda executa unha tarefa, ou sexa, cambiar todo RS para WS, o punto da función é modificar a secuencia e despois imprimir lo na pantalla, a alteración do estado do programa, en vez de regresar un resultado. Usando esta función é moi parecida á nosa praza e funcións de suma, excepto non almacenar o resultado en unha variable ou pasalo para outra función xa que non hai resultados para falar. Entón, cando nós compilar e executar o noso programa de Elmer Fudd, vostede ve que "Vostede rascally coello!" transfórmase dereito de "Vostede wascally Wabbit!" Finalmente, hai unha función máis paga a pena discutir sempre que se usalo en todos os programas de C que xa escribiu, principal. Principal é unha función moi como calquera outro. El ten un tipo de retorno, un nome, unha lista de argumentos, e un corpo. O tipo de retorno principal é sempre un int, e iso int é usado para comunicar o estado do programa cando rematar. Será que realizar con éxito, ou rematar máis cedo por mor dun erro? Retorno a cero indica un funcionamento exitoso, e devolver calquera valor distinto de cero indica un erro. Dependendo do tipo de programa que está escribindo, retornando códigos diferentes para os distintos erros poden ser útiles para persoas que usan o seu programa máis tarde. Argumentos de liña son un pouco máis complicado. A lista de argumentos pode ser baleira, que indicar por escrito baleiro entre os parénteses, ou a lista pode ter dous argumentos: unha int e unha matriz de char * s. Estes son utilizados cando o programa pretende utilizar argumentos pasados ​​na liña de comandos cando o programa é invocado. O argumento int é normalmente chamado argc, e é a lonxitude igual a matriz de char *, coñecido como argv. Argv contén os argumentos de liña de comandos pasados ​​para o programa. Noutro curta, imos falar sobre como usar estas variábeis en máis detalles. De momento, pode sentirse libre para declarar unha ou outra forma principal. Eu normalmente optar por escribir o camiño máis curto, sen argumentos, cando sexa posible. Agora que sabe como escribir funcións, está ben no seu camiño para o desenvolvemento de programas maiores, máis complexas. O meu nome é Nate Hardison. Este é CS50.