>> SPEAKER 1: Så jeg føler, at jeg har tendens til at skrive printf hej verden eller printf
hej procent s ganske ofte i sammenhænge hvor jeg ønsker at udskrive en
streng, undertiden beder bruger en del af denne streng.
Nå, ville det ikke være rart, hvis vi skabte en funktion af vores egne kaldes,
sige, udskrive navn, hvis formål i livet er simpelthen at udskrive goddag komma
så-og-så ved at acceptere den og så som et argument til denne funktion?
Vi kan erklære en funktion af vores egne lige som vi kan i Scratch som følger.
>> Med andre ord, tror jeg gerne vil printf dit navn og så beder brugeren
for hans eller hendes navn med snor s lig getString.
Og så vil jeg kalde en funktion kaldet print navn
passerer en s som sit input.
>> Nu desværre er der ingen funktion kaldet print navn i C eller i
Den CS50 biblioteket.
Men ligegyldigt, fordi vi kan gøre det selv.
At erklære en funktion af vores egne og derefter gennemføre det, kan vi simpelthen gøre
lidt plads i denne fil og erklære denne funktion som følger, ugyldig -
tilkendegiver, at funktionen ikke er faktisk kommer til at returnere noget,
selv om det vil have en bivirkning -
udskrive navn, og så lad os præcisere i parenteser at udskrive navn forventer et
argument snor type.
Og generelt, vil vi tænke af denne som et navn.
>> Og lad os åbne vores tandbøjle og lukke vores tandbøjle.
Og så printf inde hej komma procent s nye linje komma navn.
Med andre ord, selv om dette Funktionen er kun én linje kode, det
har nu nogle højere niveau formål at udskrive
en persons navn med en hilsen.
>> Nu inde i main, bemærke, at jeg er ringer print navn ved at bestå s.
Og så synes jeg nu at have et komplet program.
Den eneste forskel er fra andre vi har skrevet, er, at ikke alene
dette program har main, den har også en erklæring og implementering af
print navn, en funktion af min egen.
>> Lad os nu kompilere mit program med make funktion nul, og køre det med prik
skråstreg funktion nul.
Når du bliver bedt om mit navn Jeg vil skrive i David.
Og jeg faktisk er mødt med "Hello, David."
>> Nu viser det sig, jeg meget bevidst erklæret print navnet over hoved,
derved at fortælle C på forhånd, at der findes en funktion kaldet print
navn, så jeg kunne bruge det senere i main.
Nu havde jeg i stedet sætte print navn på bunden af ​​min fil, som ærligt jeg
burde nok gøre, så vigtigste rester den første ting, jeg eller
en anden bruger ser i min kode, det viser sig, at min kode er
ikke kommer til at kompilere.
>> Specielt, hvis jeg gå tilbage til mit terminal vindue og køre lave funktion
nul nu mærke til, at jeg råbte på.
Hvis jeg rulle op i min terminal vindue, Jeg vil se denne første fejl i rød,
underforstået erklæring af Funktionen print navn.
>> Nu, hvad betyder det?
Tja, selvom jeg har implementeret udskrive navn i denne fil, har jeg ikke
implementeret det, før jeg har brugt det i main.
Nu, vi kunne gå tilbage til den gamle version og sætte print navns
implementering op øverst.
>> Men jeg kan i stedet bare give C et vink at der er en funktion til at komme.
Konkret over hoved, jeg kan erklære udskrive navn ligesom jeg gjorde tidligere, men
afslutte overensstemmelse med et semikolon, hvorved lover at gennemføre, men endnu ikke
faktisk gennemførelse af funktion kaldet print navn.
Jeg kan derefter få hoved på toppen af ​​min fil som jeg håbede, og jeg kan faktisk
gennemføre print navn i bunden.
>> Hvis jeg vender nu tilbage til min terminal vindue og kompilere funktion nul med fabrikat,
denne gang er det kompilerer.
Og hvis jeg kører det med prik skråstreg-funktion nul give mit navn, jeg er
mødt som "Hello, David."