>> 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."