1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:04,010 >> ALTAVOZ 1: Así que me siento como si yo tiendo a escribir printf hello world o printf 3 00:00:04,010 --> 00:00:08,160 hola ciento s muy a menudo en contextos donde quiero imprimir una 4 00:00:08,160 --> 00:00:11,360 cadena, a veces pidiendo al parte de usuario de esa cadena. 5 00:00:11,360 --> 00:00:14,980 Bueno, ¿no sería bueno que creamos una función de nuestra propia llamada, 6 00:00:14,980 --> 00:00:19,900 decir, en letra de imprenta, cuyo propósito en la vida es simplemente imprimir hola comas 7 00:00:19,900 --> 00:00:24,560 tal y tan al aceptar el modo y tal como argumento para esa función? 8 00:00:24,560 --> 00:00:29,220 Podemos declarar una función de nuestra propia del mismo modo que podamos en los arañazos de la siguiente manera. 9 00:00:29,220 --> 00:00:35,280 >> En otras palabras, supongo que me gustaría printf su nombre y preguntar al usuario 10 00:00:35,280 --> 00:00:39,470 por su nombre con una cuerda s es igual a GetString. 11 00:00:39,470 --> 00:00:42,060 Y entonces yo quiero llamar a una función llamada en letra de imprenta 12 00:00:42,060 --> 00:00:44,340 el paso de una s como su entrada. 13 00:00:44,340 --> 00:00:47,770 >> Ahora, por desgracia, no hay ninguna función gritó el nombre de impresión en C o en 14 00:00:47,770 --> 00:00:48,950 la biblioteca CS50. 15 00:00:48,950 --> 00:00:51,220 Pero no importa, porque nosotros puede hacer que nosotros mismos. 16 00:00:51,220 --> 00:00:54,560 Declarar una función de nuestra propia y a continuación, ponerlo en práctica, podemos simplemente hacer 17 00:00:54,560 --> 00:00:59,000 algo de espacio en este archivo y declarar esta función de la siguiente manera, el vacío - 18 00:00:59,000 --> 00:01:01,900 lo que significa que la función no está en realidad va a devolver algo, 19 00:01:01,900 --> 00:01:03,890 a pesar de que tendrá un efecto secundario - 20 00:01:03,890 --> 00:01:08,030 imprimir el nombre y, a continuación, vamos a especificar en paréntesis que el nombre de impresión espera un 21 00:01:08,030 --> 00:01:09,680 argumento de tipo cadena. 22 00:01:09,680 --> 00:01:12,180 Y, en general, ya pensaremos de que, como un nombre. 23 00:01:12,180 --> 00:01:15,140 >> Y vamos a abrir nuestra corsé y cerrar el aparato ortopédico. 24 00:01:15,140 --> 00:01:21,930 Y entonces printf dentro hola comas nuevo nombre coma line ciento s. 25 00:01:21,930 --> 00:01:24,570 En otras palabras, a pesar de que este función es sólo una línea de código, 26 00:01:24,570 --> 00:01:27,290 no tienen ahora algún superior finalidad nivel para impresión 27 00:01:27,290 --> 00:01:28,950 el nombre de alguien con un saludo. 28 00:01:28,950 --> 00:01:33,115 >> Ahora dentro de la principal, noté que estaba gritando el nombre de impresión al pasar un s. 29 00:01:33,115 --> 00:01:35,830 Y por lo que parece ahora tener un programa completo. 30 00:01:35,830 --> 00:01:38,650 La única diferencia de los demás que hemos escrito es que no sólo 31 00:01:38,650 --> 00:01:42,480 este programa han principal, también tiene un declaración y la aplicación de 32 00:01:42,480 --> 00:01:44,740 Nombre de impresión, en función de la mía. 33 00:01:44,740 --> 00:01:49,505 >> Ahora vamos a compilar mi programa con maquillaje función de cero, y ejecutarlo con el punto 34 00:01:49,505 --> 00:01:51,080 función cero slash. 35 00:01:51,080 --> 00:01:53,390 Cuando se le pida a mi nombre Te escribo en David. 36 00:01:53,390 --> 00:01:55,830 Y yo en verdad me saludan con "Hola, David." 37 00:01:55,830 --> 00:02:00,160 >> Ahora, resulta que muy deliberadamente escriba su nombre declarado anteriormente principal, 38 00:02:00,160 --> 00:02:03,860 contando con ello C por adelantado que hay existe una función llamada print 39 00:02:03,860 --> 00:02:06,930 nombrar para que yo pudiera utilizar más tarde en principal. 40 00:02:06,930 --> 00:02:11,610 Ahora, si hubiera lugar poner el nombre de impresión en el fondo de mi archivo, ya que francamente me 41 00:02:11,610 --> 00:02:15,310 probablemente debería hacer para que los principales restos la primera cosa que yo o 42 00:02:15,310 --> 00:02:18,450 otro usuario ve en mi código, resulta que mi código es 43 00:02:18,450 --> 00:02:19,780 no va a compilar. 44 00:02:19,780 --> 00:02:23,610 >> En concreto, si regreso a mi ventana de terminal y ejecute hacen la función 45 00:02:23,610 --> 00:02:26,120 cero ahora, observe que estoy grité. 46 00:02:26,120 --> 00:02:30,340 Si me desplazo en mi ventana de terminal, Voy a ver este primer error en rojo, 47 00:02:30,340 --> 00:02:33,120 declaración implícita de la Nombre de función print. 48 00:02:33,120 --> 00:02:34,220 >> Ahora, ¿qué significa eso? 49 00:02:34,220 --> 00:02:37,190 Bueno, a pesar de que he implementado imprimir el nombre de este archivo, no tengo 50 00:02:37,190 --> 00:02:40,080 implementado antes de que yo tengo utilizado en principal. 51 00:02:40,080 --> 00:02:43,160 Ahora, podríamos volver a la antigua versión y el nombre de impresión puesto de 52 00:02:43,160 --> 00:02:44,450 aplicación hasta la parte superior. 53 00:02:44,450 --> 00:02:48,730 >> Pero puedo darle su lugar sólo un toque C que hay una función para llegar. 54 00:02:48,730 --> 00:02:55,390 En concreto, por encima de principal que puedo declarar escriba el nombre tal como lo hice antes, pero 55 00:02:55,390 --> 00:02:59,450 terminar la línea con un punto y coma, por lo tanto con la promesa de poner en práctica, pero aún no 56 00:02:59,450 --> 00:03:02,180 la aplicación real de la función llamada en letra de imprenta. 57 00:03:02,180 --> 00:03:05,860 Entonces puedo tener principal en la parte superior de mi presentar como yo esperaba, y puedo realmente 58 00:03:05,860 --> 00:03:07,440 aplicar el nombre de impresión en la parte inferior. 59 00:03:07,440 --> 00:03:12,860 >> Si ahora vuelvo a mi ventana de terminal y volver a compilar la función cero con maquillaje, 60 00:03:12,860 --> 00:03:14,390 esta vez se compila. 61 00:03:14,390 --> 00:03:18,240 Y si me quedo con la función slash dot cero proporcionar mi nombre, yo estoy 62 00:03:18,240 --> 00:03:20,650 saludado como "Hola, David." 63 00:03:20,650 --> 00:03:22,268