SPEAKER 1: Så jeg føler at jeg har en tendens til å skrive printf hello world eller printf hallo prosent er ganske ofte i sammenhenger hvor jeg ønsker å skrive ut en streng, noen ganger spør Brukeren del av strengen. Vel, ville det ikke vært fint hvis vi opprettet en funksjon av vår egen kalt, si, skrive ut navn, som har som formål i livet er rett og slett å skrive hei komma så-og-så ved å godta den så-og-så som et argument til den funksjonen? Vi kan erklære en funksjon av våre egne akkurat som vi kan i Scratch som følger. Med andre ord, antar jeg vil gjerne printf ditt navn og deretter be brukeren for hans eller hennes navn med streng s tilsvarer GetString. Og da vil jeg kalle en funksjon kalles print navn passerer en s som sin inngang. Nå er dessverre er det ingen funksjon kalles print navn i C eller i Det CS50 biblioteket. Men uansett, fordi vi kan gjøre det selv. Å erklære en funksjon av vår egen og deretter implementere det, kan vi bare gjøre noen plass i denne filen og erklære denne funksjonen som følger, annullert - som betyr at funksjonen er ikke faktisk kommer til å returnere noe, selv om det vil ha en bivirkning - skrive ut navn, og så la oss spesifisere i parenteser som print navn forventer en argument av typen streng. Og generelt, vil vi tenke av det som et navn. Og la oss åpne våre brace og lukke våre seler. Og så printf inne hallo komma prosent nye linje komma navn. Med andre ord, selv om denne Funksjonen er bare en linje med kode, det gjør nå har noen høyere nivå formål å skrive ut noens navn med en hilsen. Nå innsiden av hoved, merker at jeg er kalle utskrifts navn etter bestått en s. Og så jeg synes nå å ha et komplett program. Den eneste forskjellen er fra andre vi har skrevet er at ikke bare dette programmet har hoved, har det også en erklæring og gjennomføring av print navn, en funksjon av min egen. La oss nå kompilere programmet mitt med sminke funksjon null, og kjøre den med prikk slash-funksjonen null. Når du blir bedt om navnet mitt Jeg skal skrive i David. Og jeg faktisk er møtt med "Hei, David." Nå viser det seg jeg veldig bevisst erklærte print navnet ovenfor hoved, derved å fortelle C på forhånd at det Det finnes en funksjon kalt print navn slik at jeg kunne bruke det senere i hoved. Nå hadde jeg i stedet sette utskrifts navn på bunnen av filen min, så ærlig jeg sannsynligvis bør gjøre slik at hoved restene den første tingen som jeg eller en annen bruker ser i min kode, det viser seg at koden min er ikke kommer til å kompilere. Spesielt hvis jeg går tilbake til min terminalvindu og kjøre gjør funksjon null nå, merker at jeg skrek til. Hvis jeg blar opp i min terminalvindu, Jeg vil se denne første feilen i rødt, implisitt erklæring funksjon print navn. Nå, hva betyr det? Vel, selv om jeg har implementert skrive navnet i denne filen, har jeg ikke implementert det før jeg har brukt det i hoved. Nå kan vi gå tilbake til den gamle versjon og sette utskrifts navns implementeringen opp toppen. Men jeg kan i stedet bare gi C et hint at det er en funksjon som kommer. Spesielt ovenfor hoved kan jeg erklære skrive navn på samme måte som jeg gjorde tidligere, men avslutte linjen med et semikolon, og dermed lover å implementere, men ennå ikke faktisk implementere funksjonen kalles print navn. I kan da ha hoved øverst min fil som jeg håpet, og jeg kan faktisk implementere print navn nederst. Hvis jeg nå tilbake til min terminalvindu og rekompilere funksjon null med make, denne gangen er det kompilerer. Og hvis jeg kjører det med dot slash-funksjon null å gi mitt navn, er jeg hilst som "Hei, David."