Spreker 1: Ek voel soos ek geneig is om te skryf printf Hello World of printf hallo persent s dikwels in konteks waar ek wil uit te druk van 'n string, soms vra die gebruikers deel van die string. Wel, sou dit nie lekker wees as ons ' 'n funksie van ons eie genoem, sê, druk naam, wie se doel in die lewe is eenvoudig te druk hallo komma so-en-so deur die aanvaarding van die so-en-so as 'n argument op daardie funksie? Ons kan 'n funksie van ons eie verklaar Net soos ons in Scratch soos volg. Met ander woorde, dink ek wil printf jou naam en dan vra die gebruiker vir sy of haar naam met 'n tou s gelyk GetString. En dan wil ek 'n funksie te roep genoem Print Naam verby 'n s aangesien sy insette. Nou ongelukkig, is daar geen funksie genoem Print Naam in C of die cs50 biblioteek. Maar maak nie saak nie, want ons kan maak dit self. 'N funksie van ons eie te verklaar en dan is dit implementeer, kan ons net maak ruimte in hierdie lêer en verklaar hierdie funksie soos volg, nietig - wat beteken dat die funksie is nie eintlik gaan om iets terug te keer, selfs al is dit sal 'n newe-effek - druk die naam, en dan laat ons spesifiseer in hakies dat Print Naam verwag 'n argument van die tipe string. En in die algemeen, sal ons dink van daardie as 'n naam. En laat ons ons oop stut en sluit ons stut. En dan printf binne hallo komma persent se nuwe lyn komma naam. Met ander woorde, selfs al is dit funksie is net een lyn van kode, is dit het nou 'n paar hoër het vlak doel te druk iemand se naam met 'n groet. Nou binnekant van die belangrikste, kennis dat ek roep Print Naam deur 'n s. En so het ek nou lyk te hê 'n volledige program. Die enigste verskil is van ander ons geskryf is, is dat nie net Hierdie program hoof, het dit ook 'n verklaring en implementering van Druk naam, 'n funksie van my eie. Kom ons kyk nou my program saam te stel met die make funksie nul is, en voer dit met dot streep funksie nul. As jy gevra word vir my naam Ek sal tik in Dawid. En ek inderdaad is begroet met 'n "Hallo, David." Nou, dit blyk ek baie doelbewus verklaar Print Naam bogenoemde hoof, daardeur vertel C vooruit dat daar bestaan ​​'n funksie genoem Print noem sodat ek kan gebruik Dit het later in die belangrikste. Nou, ek het in plaas sit Print Naam op die onderkant van my lêer, as eerlik ek waarskynlik moet doen sodat belangrikste oorblyfsels Die eerste ding wat ek of 'n ander gebruiker sien in my kode, dit blyk dat my kode is gaan nie te stel. Spesifiek, as ek gaan terug na my terminale venster en hardloop maak funksie zero nou, kennis dat ek geskree. As ek blaai in my terminale venster, Ek sal die eerste fout sien in rooi, implisiete verklaring van funksie Print Naam. Nou, wat beteken dit? Wel, selfs al het ek nog geïmplementeer Print Naam in hierdie lêer, ek het nie geïmplementeer voordat ek het gebruik dit in die belangrikste. Nou kan ons gaan terug na die ou weergawe en sit druk naam se implementering tot bo-op. Maar ek kan plaas net gee C 'n wenk dat daar 'n funksie te kom. Spesifiek, bo vernaamste Ek kan verklaar Print Naam net soos ek gedoen het vroeër, maar die einde van die lyn met 'n kommapunt, en daardeur belowe om te implementeer, maar nog nie eintlik die uitvoering van die funksie genoem Print Naam. Ek kan dan hoof aan die bokant van my dien as wat ek gehoop het, en ek kan eintlik implementeer Print Naam aan die onderkant. As ek nou terug te keer na my terminale venster en heropstel funksie nul met make, hierdie keer is dit stel. En as ek loop dit met dot streep funksie nul verskaffing van my naam, ek is begroet as "Hallo, David."