LUIDSPREKER 1: Dus ik voel me alsof ik de neiging om printf schrijven hello wereld of printf hello procent s heel vaak in contexten waar ik wil afdrukken van een snaar, soms vraagt ​​de gebruikersdeel van die string. Nou, zou het niet mooi zijn als we gemaakt een functie van eigen genoemd, zeggen, afdrukken naam, waarvan het doel in het leven is gewoon om komma drukken hello zo-en-zo door het aanvaarden van de zo-en-zo als argument voor die functie? We kunnen een functie van onze eigen verklaren net als we kunnen in Scratch als volgt. Met andere woorden, stel dat ik zou willen printf uw naam en dan vragen de gebruiker voor zijn of haar naam met een touwtje s gelijk GetString. En dan wil ik een functie aan te roepen genaamd print naam het passeren van een s als invoer. Nu helaas, er is geen functie riep naamdruk in C of in de CS50 bibliotheek. Maar maakt niet uit, want we kan het zelf maken. Om een ​​functie van onze eigen verklaren en daadwerkelijk in praktijk brengt, kunnen we gewoon maken wat ruimte in dit bestand en verklaren deze functie als volgt, leegte - betekent dat de functie niet eigenlijk gaat om iets terug, ook al zal hebben een neveneffect - afdrukken naam, en laten we dan opgeven in haakjes dat naamdruk verwacht een argument van het type string. En in het algemeen, zullen we denken van dat als een naam. En laten we openen onze brace en sluit onze brace. En dan printf binnen hello komma procent s nieuwe lijn komma naam. Met andere woorden, ook al functie is maar een regel code, het heeft nu een hoger niveau doel om af te drukken de naam van iemand met een groet. Nu binnenkant van de belangrijkste, merk dat ik ben roepnaam druk door het passeren van een s. En dus ik nu lijken te hebben een compleet programma. Het enige verschil anderen we hebben geschreven is dat niet alleen dit programma zijn de belangrijkste, het heeft ook een verklaring en de uitvoering van prent naam, een functie van mijn eigen. Laten we nu mijn programma met make compileren functie nul, en voer het uit met stip slash functie nul. Wanneer u wordt gevraagd om mijn naam Ik type in David. En ik ben inderdaad begroet met "Hallo, David." Nu, het blijkt dat ik heel bewust verklaarde afdruk naam boven de belangrijkste, daardoor C vertellen van te voren dat er Er bestaat een functie genaamd print naam, zodat ik kon gebruiken het later in de belangrijkste. Nu had ik in plaats daarvan naamdruk op de grond van mijn bestand, als ik eerlijk gezegd waarschijnlijk moeten doen dat de belangrijkste overblijfselen het eerste wat ik of een andere gebruiker ziet in mijn code, het blijkt dat mijn code is niet van plan om te compileren. In het bijzonder, als ik terug te gaan mijn terminalvenster en run te maken functie nul nu, merk dat ik schreeuwde. Als ik omhoog in mijn terminal venster, Ik zal deze eerste fout in rood, impliciete verklaring van functie afdruk naam. Nu, wat betekent dat? Nou, ook al heb ik geïmplementeerd afgedrukt in dit bestand, heb ik niet geïmplementeerd voordat ik heb gebruikte het in de belangrijkste. Nu kunnen we terug gaan naar het oude versie en zet naamdruk's implementatie boven. Maar ik kan in plaats daarvan geef C een hint dat er een functie om te komen. Specifiek, boven de belangrijkste ik kan verklaren afdrukken naam net zoals ik vroeger deed, maar het einde van de lijn met een puntkomma, waardoor beloven te implementeren, maar nog niet eigenlijk de uitvoering van de functie genoemd naamdruk. Ik kan dan hoofd boven mijn file als ik had gehoopt, en ik kan eigenlijk implementeren naam print aan de onderkant. Als ik nu terug naar mijn terminal venster en compileer functie nul met make, deze keer compileert. En als ik zonder het met dot slash-functie nul verstrekken van mijn naam, ik ben begroet als "Hallo, David."