SPEAKER 1: Deci, eu simt ca și cum am tendința de a Trimite printf salut lume sau printf salut la suta s destul de des în contexte în cazul în care doresc să imprime o șir, uneori cerând parte de utilizare a acestui șir. Ei bine, nu ar fi frumos dacă am creat o funcție de propria noastră numit, spune, nume de imprimare, al cărui scop în viață este pur și simplu pentru a imprima salut virgulă așa-și-așa prin acceptarea așa-și-așa ca un argument pentru această funcție? Putem declara o funcție de propria noastră la fel cum putem în Scratch, după cum urmează. Cu alte cuvinte, să presupunem că aș vrea să printf numele dvs. și apoi cere utilizatorului pentru numele lui sau a ei cu sfoară e egal getString. Și apoi m-am dori pentru a apela o funcție numit nume de imprimare trece un e ca intrare sale. Acum, din păcate, nu există nicio funcție pus numele de imprimare în C sau în biblioteca CS50. Dar nu contează, pentru că noi poate ne face. Pentru a declara o funcție de propriile noastre și apoi se pune în aplicare, putem face pur și simplu unele cameră în acest dosar și să declare această funcție, după cum urmează, gol - ceea ce înseamnă că funcția nu este de fapt de gând să se întoarcă ceva, deși va avea un efect secundar - imprima nume, și apoi să specificați în paranteze numele de imprimare așteaptă la o argument de tip șir. Și, în general, ne vom gândi din care ca un nume. Și să deschidem bretele nostru și închide bretele nostru. Și apoi printf în interiorul salut virgulă la sută s nou nume de linie virgulă. Cu alte cuvinte, chiar dacă aceasta Funcția este doar o linie de cod, ea acum are ceva mai mare scop la nivel de tipărire numele cuiva cu un salut. Acum, în interiorul de principal, observați că sunt de asteptare nume de imprimare prin trecerea unui s. Și așa mi se pare acum să aibă un program complet. Singura diferenta fiind de la alții am scris este că nu numai că acest program au principal, are de asemenea o declarație și punerea în aplicare a Numele de imprimare, o funcție de propria mea. Hai acum compila programul meu de make Funcția de zero, și rulați-l cu punct Funcția de zero slash. Când vi se solicită pentru numele meu O să tastați în David. Și eu într-adevăr am întâmpinat cu "Bună, David." Acum, se pare că am foarte în mod deliberat Numele de imprimare a declarat de mai sus principal, spune astfel C în prealabil că există există o funcție numită de imprimare nume, astfel că am putea folosi mai târziu, în principal. Acum, dacă aș fi pus în loc de nume de imprimare la în partea de jos de dosarul meu, ca sincer Probabil ar trebui să facă astfel încât rămâne principale primul lucru pe care eu sau un alt utilizator vede în codul meu, se dovedește că codul meu este nu va compila. În mod specific, dacă mă duc înapoi la mea fereastră de terminal și rulați make funcție la zero acum, observați că am țipat la. Dacă aș derula în sus în fereastra mea terminale, Voi vedea acest prim eroare în roșu, declarație implicită a Numele imprimare funcție. Acum, ce înseamnă asta? Ei bine, chiar dacă le-am pus în aplicare imprima nume în acest dosar, eu nu am a implementat-o ​​înainte de am folosit în principal. Acum, ne-am putea întoarce la vechiul versiunea și numele tipar pus lui punere în aplicare până sus. Dar eu pot da în schimb doar un indiciu C că există o funcție pentru a veni. În mod special, de mai sus principal pot declara imprima nume la fel cum am făcut-o mai devreme, dar termina linia cu un punct și virgulă, astfel promițând să pună în aplicare, dar nu au fost încă implementare a functiei numit nume de imprimare. Eu pot avea apoi principal la partea de sus a mea fișier așa cum am sperat, și pot de fapt punerea în aplicare a numelui de imprimare în partea de jos. Dacă acum mă întorc la fereastra mea terminalul și recompilați funcția de zero, cu make, de data aceasta compilează. Și dacă am alerga cu funcție slash punct zero, furnizarea de numele meu, eu sunt salutat ca "Bună ziua, David."