SPEAKER 1: Do mi sentas min kiel mi emas skribi printf saluton mondo aŭ printf saluton procento s tre ofte en kuntekstoj kie mi volas printi a kordo, foje demandi al la uzanto parto de tiu ĉeno. Nu, ĉu ne estus agrable, se ni kreis funkcio de nia propra nomi, diri, presi nomo, kies celo en la vivo Estas simple printi saluton komo tiom-kaj-tiel per akcepto de la tiel-kaj-tiel kiel argumento por tiu funkcio? Ni povas deklari funkcio de nia propra ĝuste kiel ni povas en Scratch jene. En aliaj vortoj, supozu mi ŝatus printf vian nomon kaj poste peti de la uzanto cxar lia aŭ ŝia nomo kun kordo s egalas GetString. Kaj tiam mi volas nomi funkcio vokis print nomo pasante s kiel ĝia enigo. Nun bedaŭrinde, ne estas funkcio vokis print nomo en C aŭ en la cs50 biblioteko. Sed ne gravis, ĉar ni povas fari ĝin. Deklari funkcio de nia propra kaj tiam apliki ĝin, ni povas simple fari iu ĉambro en tiu dosiero kaj deklari ĉi funkcio kiel sekvas, void - montrante, ke la funkcio estas ne fakte tuj revenos ion, eĉ se ĝi havos flanka efiko - presi nomo, kaj tiam ni specifi en Parentezoj ke print nomo atendas an argumento de tipo kordo. Kaj ĝenerale, ni devos pensi de tiu kiel nomo. Kaj ni malfermu niajn krampoj kaj fermi niajn streĉa. Kaj tiam printf interne saluton komo procento nova linio komo nomo. En aliaj vortoj, eĉ se tiu funkcio estas nur unu linion de kodo, ĝi ne nun havas iom pli alta nivelo intencas presi ies nomon kun saluto. Nun interne de ĉefaj, ili rimarkas, ke mi estas nomante print nomo pasante s. Kaj do mi ŝajnas nun havi kompletan programon. La sola diferenco de aliaj ni jam skribis estas kiu ne nur faras ĉi programo ĉefa, ĝi ankaŭ havas deklaro kaj efektivigo de print nomo, funkcio de mia propra. Ni nun kompili mian programon per ŝminko funkcio nulo, kaj ruli ĝin per skalara oblikvo funkcio nulo. Kiam instigis mian nomon Mi tajpas en David. Kaj mi ja estas salutis kun "Saluton, Davido." Nun, ĝi rezultas Mi tre intence deklaris print nomon supre ĉefa, per tio diri C anticipe, ke ekzistas Ekzistas funkcio nomita print nomo tiel ke mi povus uzi ĝin poste en ĉefa. Nun, se mi anstataŭ meti print nomo ĉe la fundo de mia dosiero, kiel sincere mi probable devus fari por ke ĉefa restaĵojn la unua afero, kiun mi aŭ alia uzanto vidas en mia kodo, rezultas, ke mia kodo estas Ne tuj kompili. Specife, se mi reirus al mia fina fenestro kaj run fari funkcio nulo nun rimarkas, ke mi kriis al. Se mi rulumu supren en mia fina fenestro, Mi vidos ĉi unua eraro en ruĝa, implica deklaro de funkcio print nomo. Nun, kio signifas tio? Nu, kvankam mi implementado presi nomo en tiu dosiero, mi ne implementado gxin antaux mi havas uzis ĝin en ĉefa. Nun, ni povus reiri al la malnova versio kaj meti print nomo efektivigo supren top. Sed mi povas anstataŭ simple doni C aludo ke estas funkcio venos. Specife, supre ĉefa mi povas deklari presi nomon same kiel mi faris antaŭe, sed fini la linion kun punktokomo, tiamaniere promesante apliki sed ankoraux ne efektive apliki la funkcio vokis print nomo. Mi povas do havi ĉefan ĉe la supro de mia dosiero kiel mi atendis, kaj mi povos reale apliki print nomon ĉe la malsupro. Se mi nun revenas al mia fina fenestro kaj rekompili funkcio nulo per ŝminko, Siatempe estas kompilanto. Kaj se mi kuras kun skalara oblikvo funkcio nulo havigi mian nomon, mi estas salutis kiel "Saluton, Davido."