[Powered by Google Translate] Las funciones son secciones de código utilizadas dentro de un programa más amplio para realizar una tarea particular. También son conocidos como procedimientos, subrutinas, y subprogramas, ya que en realidad son sólo mini programas dentro de los programas. A pesar de que es posible que no lo hayas notado, que sin duda han utilizado funciones ya si has programado en C. Al escribir cosas en la pantalla con printf, en realidad estás usando una función llamada printf. Del mismo modo, getInt y GetString son funciones que CS50 proporciona para usted. Como programadores, utilizamos funciones para un número de razones. Tener funciones para realizar tareas comunes como escribir a la pantalla y preguntar al usuario para la entrada nos ahorra tiempo en la programación. No es necesario escribir código para hacer esas mismas cosas puesto que ya están hecho por nosotros. Ni siquiera es necesario que entendamos exactamente cómo estas funciones operan internamente. En su lugar, sólo hay que saber cómo utilizar o llamarlos en nuestros programas. También es útil para escribir funciones en programas más amplios incluso si usted no está planeando en hacer que otros los utilizan, sólo para dividir la tarea más amplia a la mano. De esta manera, le dará estructura a su código mucho más parecido a lo que dan estructura a un ensayo, y con proyectos muy grandes que permiten que varias personas para trabajar en diferentes partes al mismo tiempo ya que es evidente que el trabajo de una persona termina y otro comienza. Funciones funcionan típicamente en 1 o más entradas, conocidos como argumentos o parámetros, la transformación de los insumos en un valor de salida que se devuelve. Sin embargo, también es posible tener funciones que no utilizan ningún argumento de entrada y no devuelven un resultado. Bueno, basta de cosas suaves. Echemos un vistazo a algunas de las funciones reales en C. Aquí tenemos una función llamada cuadrado que, lo creas o no, calcula el cuadrado de la entrada. Vamos a examinar la sintaxis de la misma. La primera palabra que ves en la función, int, especifica el tipo de retorno de la función, es decir, el tipo C de salida de la función. Esta función emitirá un valor con tipo int. La siguiente palabra que ves es el nombre de la función, el cuadrado en este caso. Nombrar adecuadamente las funciones es particularmente importante ya que es probable que la documentación más visible de lo que hace la función. Puede ser que sea fresco para nombrar esta función shazam o booyah, pero eso no nos dice nada acerca de lo que hace la función. Tras el nombre de la función vienen las entradas a la función, los argumentos. Se enumeran en el interior de un conjunto de paréntesis tanto con su tipo y un nombre de usar para ellos dentro del cuerpo de la función. Square tarda sólo 1 argumento, el int a plaza, que me he decidido a dar el nombre x. Esto termina la declaración de la función o prototipo. Las llaves que rodean el resto de la función indican el comienzo y el final del cuerpo de la función, la definición de la propia función. Square es una función bastante simple. Es sólo tengo una línea, ya que todo lo que tenemos que hacer es multiplicar x por sí mismo. El retorno palabra especifica el valor de salida y activa el final de la función. Para utilizar la función cuadrado, se necesita proporcionar las entradas apropiadas y luego capturar la salida. Aquí puede ver un par de formas de hacerlo. Podemos pasar un int prima, como 6, o nos puede pasar en una variable como un. Tenga en cuenta que cada vez que llamamos plaza, captamos el resultado en una variable y luego imprimirlo. Sin embargo, no es necesario almacenar el valor devuelto en una variable y luego imprimir. Podríamos enviarlo directamente a printf como lo hacemos cuando elevamos al cuadrado 10, pero esto no significa que nosotros no tenemos acceso al valor devuelto de la plaza 10 otra parte del código. Veamos otro ejemplo simple. Esta vez, vamos a sumar 2 flotadores juntos para que podamos ver lo que se parece a una función cuando tiene 2 entradas en lugar de sólo uno. Como se puede ver, no es muy diferente. Todo lo que hacemos es añadir en el segundo argumento, un flotador llamado b, a la lista de argumentos utilizando una coma para separarlo del primer argumento, un flotador. Por lo tanto, nuestra plaza y funciones de suma son bastante fáciles de entender porque son equivalentes a las funciones que usted ha visto antes en la clase de matemáticas. Ahora, echemos un vistazo a una función que es ligeramente diferente. En lugar de devolver un valor, éste modifica un estado. Esto se conoce como teniendo un efecto secundario. En este programa, la función printf_fudd_style tiene un tipo de cambio que no hemos visto antes vacío,. Void se utiliza para decir que una función no devuelve nada. No hay variables de tipo void, por lo que si se intenta devolver algo a partir de una función como printf_fudd_style, el compilador gritarte. Dentro printf_fudd_style, vemos que mientras la función todavía realiza una tarea, a saber, el cambio de rupias a todos Ws, el punto de la función es modificar la cadena y luego imprimirlo en la pantalla, cambiar el estado del programa en lugar de devolver un resultado. Con esta función es muy similar a usar nuestra plaza y funciones de suma, excepto que no almacene el resultado en una variable o hacerlo pasar a otra función ya que no hay un resultado que hablar. Así que, cuando compilar y ejecutar nuestro programa Elmer Fudd, se ve que "Usted pícaro conejo!" se transforma derecho a "Usted Wascally Wabbit!" Por último, hay una función más vale la pena discutir desde que ha estado usando en cada programa en C que has escrito, principal. Principal es una función muy similar a cualquier otro. Tiene un tipo de retorno, un nombre, una lista de argumentos, y un cuerpo. El tipo de retorno de main es siempre un int, y esto int se utiliza para comunicar el estado del programa cuando termina. ¿Se ejecutan correctamente, o qué terminó temprano debido a un error? Volviendo a cero indica una exitosa carrera, y devolver cualquier valor distinto de cero indica un error. Dependiendo del tipo de programa que usted está escribiendo, volver códigos diferentes para diferentes errores pueden ser útiles para las personas que utilizan el programa más adelante. Mains argumentos son un poco más complicadas. La lista de argumentos puede estar vacío, que nos indican por escrito vacío entre los paréntesis, o la lista puede tener dos argumentos: un entero y una matriz de char * s. Estos se utilizan cuando el programa tiene la intención de utilizar argumentos que se pasan en la línea de comandos cuando el programa se invoca. El argumento que se suele llamar int argc, y es igual a la longitud de la matriz char *, conocido como argv. Argv contiene los argumentos de la línea de comandos pasados ​​al programa. En otro corto, vamos a hablar acerca de cómo utilizar estas variables con más detalle. Por el momento, usted puede sentirse libre de declarar principal en ambos sentidos. Me suelen optar por escribir el camino más corto, sin argumentos, cuando sea posible. Ahora que sabes cómo escribir funciones, usted está bien en su camino hacia el desarrollo de los programas más grandes y más complejas. Mi nombre es Nate Hardison. Esto es CS50.