1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:04,010 >> COLUMNA 1: Entón, eu sinto que tenden a escribir printf Ola mundo ou printf 3 00:00:04,010 --> 00:00:08,160 Ola por cento s, moitas veces en contextos onde quero imprimir unha 4 00:00:08,160 --> 00:00:11,360 corda, por veces, pedindo a parte do usuario do que cadea. 5 00:00:11,360 --> 00:00:14,980 Ben, non sería bo se creamos unha función do noso propio chamado, 6 00:00:14,980 --> 00:00:19,900 dicir, o nome de impresión, cuxo propósito na vida é simplemente para imprimir Ola coma 7 00:00:19,900 --> 00:00:24,560 así e así, ao aceptar o tal e tan como un argumento para esa función? 8 00:00:24,560 --> 00:00:29,220 Podemos declarar unha función do noso propio Así como podemos en scratch como segue. 9 00:00:29,220 --> 00:00:35,280 >> Noutras palabras, supoña que me gustaría printf o seu nome e, a continuación, pedir que o usuario 10 00:00:35,280 --> 00:00:39,470 ao seu nome con corda s é igual GetString. 11 00:00:39,470 --> 00:00:42,060 E entón eu quero chamar a unha función chamou o nome de impresión 12 00:00:42,060 --> 00:00:44,340 pasar un s como a súa entrada. 13 00:00:44,340 --> 00:00:47,770 >> Agora, por desgraza, non hai ningunha función chamou o nome de impresión en C ou en 14 00:00:47,770 --> 00:00:48,950 a biblioteca de CS50. 15 00:00:48,950 --> 00:00:51,220 Pero non importa, porque nós pode facelo nós mesmos. 16 00:00:51,220 --> 00:00:54,560 Para declarar unha función do noso propio e logo implementar lo, podemos simplemente facer 17 00:00:54,560 --> 00:00:59,000 un espazo neste ficheiro e declarar esta función do seguinte xeito, nula - 18 00:00:59,000 --> 00:01:01,900 o que significa que a función non é realmente vai devolver algo, 19 00:01:01,900 --> 00:01:03,890 aínda terá efectos secundarios - 20 00:01:03,890 --> 00:01:08,030 imprimir o nome, e logo imos indicar en parénteses que o nome de impresión espera un 21 00:01:08,030 --> 00:01:09,680 argumento do tipo cadea. 22 00:01:09,680 --> 00:01:12,180 E, en xeral, imos pensar do que como un nome. 23 00:01:12,180 --> 00:01:15,140 >> E imos abrir a nosa cinta e pechar a nosa cinta. 24 00:01:15,140 --> 00:01:21,930 E entón printf dentro Ola coma nome da liña de coma por cento s. 25 00:01:21,930 --> 00:01:24,570 Noutras palabras, aínda que iso función é só unha liña de código, 26 00:01:24,570 --> 00:01:27,290 que agora ten algún superior propósito nivel para imprimir 27 00:01:27,290 --> 00:01:28,950 o nome de alguén con un saúdo. 28 00:01:28,950 --> 00:01:33,115 >> Agora no inicio, entender que eu son chamando o nome de impresión por medio dun s. 29 00:01:33,115 --> 00:01:35,830 E así me parece agora ter un programa completo. 30 00:01:35,830 --> 00:01:38,650 A única diferenza é dende outros escribimos é que non só fai 31 00:01:38,650 --> 00:01:42,480 este programa ten inicio, el tamén ten un declaración e implantación de 32 00:01:42,480 --> 00:01:44,740 Nome de impresión, en función do meu propio. 33 00:01:44,740 --> 00:01:49,505 >> Imos agora compilar meu programa co make función cero, e executa-lo con un punto 34 00:01:49,505 --> 00:01:51,080 reducir a función cero. 35 00:01:51,080 --> 00:01:53,390 Cando se solicite para o meu nome Vou escribir David. 36 00:01:53,390 --> 00:01:55,830 E eu realmente son cumprimento con "Ola, David." 37 00:01:55,830 --> 00:02:00,160 >> Agora, non é que eu deliberadamente declarou o nome de impresión anterior principal, 38 00:02:00,160 --> 00:02:03,860 dicindo así C de antemán que non existe unha función chamada de impresión 39 00:02:03,860 --> 00:02:06,930 nome para que eu puidese usar que máis tarde, en principal. 40 00:02:06,930 --> 00:02:11,610 Agora, se eu poñer o nome en vez de impresión en Do fondo do meu arquivo, porque, sinceramente, eu 41 00:02:11,610 --> 00:02:15,310 probabelmente debería facer para que os principais restos o primeiro que eu ou 42 00:02:15,310 --> 00:02:18,450 outro usuario ve no meu código, verifícase que o meu código é 43 00:02:18,450 --> 00:02:19,780 non vai compilar. 44 00:02:19,780 --> 00:02:23,610 >> En concreto, se eu volver para o meu fiestra de terminal e executar facer a función 45 00:02:23,610 --> 00:02:26,120 cero, agora, entender que eu estou berrou. 46 00:02:26,120 --> 00:02:30,340 Se eu rolar para arriba na miña ventá de terminal, Vou ver este primeiro erro en vermello, 47 00:02:30,340 --> 00:02:33,120 declaración implícita de función nome de impresión. 48 00:02:33,120 --> 00:02:34,220 >> Agora, o que significa isto? 49 00:02:34,220 --> 00:02:37,190 Así, aínda que eu teña implantado imprimir o nome deste ficheiro, eu non teño 50 00:02:37,190 --> 00:02:40,080 aplicada antes de que eu teño usou en principal. 51 00:02:40,080 --> 00:02:43,160 Agora poderiamos volver ao vello versión e nome de impresión poñer de 52 00:02:43,160 --> 00:02:44,450 implantación enriba. 53 00:02:44,450 --> 00:02:48,730 >> Pero podo en vez de só dar unha información C que non hai unha función para vir. 54 00:02:48,730 --> 00:02:55,390 En concreto, sobre inicio podo declarar imprimir o nome así como fixen anteriormente, pero 55 00:02:55,390 --> 00:02:59,450 rematar a liña cun punto e coma, así prometendo aplicar, pero aínda non 56 00:02:59,450 --> 00:03:02,180 realmente implementar a función chamou o nome de impresión. 57 00:03:02,180 --> 00:03:05,860 Podo, entón, ten inicio na parte superior da miña ficheiro como eu esperaba, e podo realmente 58 00:03:05,860 --> 00:03:07,440 aplicar nome impreso na parte inferior. 59 00:03:07,440 --> 00:03:12,860 >> Se eu agora volver á miña fiestra de terminal e recompilar función a cero co make, 60 00:03:12,860 --> 00:03:14,390 esta vez compila. 61 00:03:14,390 --> 00:03:18,240 E se eu executa-lo coa función de corte de punto cero, facilitando o meu nome, eu estou 62 00:03:18,240 --> 00:03:20,650 saudado como "Ola, David." 63 00:03:20,650 --> 00:03:22,268