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