[Powered by Google Translate] Functies zijn delen van de code die wordt gebruikt binnen een groter programma
om een ​​bepaalde taak uit te voeren.
Ze zijn ook bekend als procedures, subroutines, en subprogramma's,
omdat ze eigenlijk gewoon mini-programma's binnen de programma's.
Ook al heb je misschien niet hebben gemerkt,
u zeker zijn gebruikte functies al als je nog geprogrammeerd in C.
Als je spullen te schrijven naar het scherm met behulp van printf,
je eigenlijk een functie printf genoemd.
Ook GetInt en GetString zijn functies die CS50 biedt voor u.
Als programmeurs, gebruiken we functies voor een aantal redenen.
>> Na functies om gemeenschappelijke taken uit te voeren zoals het schrijven naar het scherm
en vragen aan de gebruiker om invoer bespaart ons tijd bij het programmeren.
Het is niet nodig om code te schrijven die dezelfde dingen te doen
omdat ze al voor ons gedaan.
Het is zelfs niet nodig voor ons om te begrijpen hoe die functies intern werken.
In plaats daarvan, we hoeven alleen maar te weten hoe te gebruiken of hen te bellen in onze programma's.
Het is ook handig om functies te schrijven in grotere programma's
zelfs als u niet van plan bent op het hebben van anderen gebruiken,
alleen maar om de verdeling van de grotere taak bij de hand.
Op deze manier geef je structuur aan in uw code net als je zou structuur te geven aan een essay,
en met echt grote projecten u de pagina toestaat meerdere mensen
te werken op verschillende onderdelen tegelijk
want het is duidelijk waar de ene persoon het werk eindigt en een ander is begint.
>> Functies werken meestal op 1 of meer ingangen, die bekend staat als argumenten of parameters,
transformeren die ingangen naar een uitgang van de waarde die vervolgens wordt geretourneerd.
Echter, het is ook mogelijk om functies die geen gebruik maken van een input argumenten
en niet terug een uitgang.
Oke, genoeg met de pluizige spul.
Laten we eens een kijkje nemen op een aantal reële functies in C.
>> Hier hebben we een functie genaamd plein dat, geloof het of niet,
berekent het kwadraat van de input.
Laten we ontleden de syntaxis van het.
Het eerste woord dat u ziet in de functie, int,
specificeert het return type van de functie, dat wil zeggen het C type uitvoer van de functie.
Deze functie zal uitvoeren een waarde met type int.
Het volgende woord dat u ziet, is de naam van de functie, vierkant in dit geval.
Benoemen van functies op de juiste wijze is met name van belang
want het is waarschijnlijk de meest zichtbare documentatie van wat de functie doet.
Het is misschien leuk om deze functie te shazam of Booyah noemen,
maar dat zou ons niet vertellen niets over wat de functie doet.
>> Naar aanleiding van de functienaam de ingangen komen om de functie, de argumenten.
Ze staan ​​in een stel haakjes
zowel hun type en een naam voor ze binnen het lichaam van de functie.
Vierkante duurt slechts 1 argument, de int naar plein,
die ik heb besloten om de naam x geven.
Dit beëindigt de functie declaratie of prototype.
De accolades rond de rest van de functie
duiden het begin en einde van de functie lichaam,
de definitie van de functie zelf.
Square is een vrij eenvoudige functie.
Het heeft maar 1 regel, omdat alles wat we moeten doen is vermenigvuldigen x op zichzelf.
Het woord rendement geeft de uitgangswaarde en activeert het einde van de functie.
Om het plein functie te gebruiken, moeten we de juiste ingangen leveren
en leg de uitgang.
Hier zie je een paar manieren om dat te doen.
We kunnen passeren in een rauwe int, zoals 6, of we kunnen passeren in een variabele als een.
Merk op dat elke keer dat we vierkant noemen,
We vangen de output in een variabele en vervolgens afdrukken.
Echter, we hebben niet de terugkeer waarde in een variabele op te slaan en af ​​te drukken.
We konden gewoon direct naar printf zoals wij dat doen als we square 10,
maar dit betekent wel dat we geen toegang hebben tot de return waarde van de vierkante 10 hebben
elders in de code.
Laten we eens kijken naar een ander eenvoudig voorbeeld.
>> Deze keer zullen we samenvatten 2 praalwagens elkaar, zodat we kunnen zien wat een functie eruit ziet
wanneer het heeft 2 ingangen in plaats van 1.
Zoals je kunt zien, het is niet veel anders.
Alles wat we doen is het toevoegen in de 2e argument, een vlotter met de naam b,
om de lijst met argumenten met een komma te scheiden van het eerste argument, drijven een.
Dus, onze plein en som functies zijn vrij gemakkelijk te begrijpen
omdat ze gelijk aan functies die u eerder hebt in wiskunde klas gezien.
Laten we nu eens kijken naar een functie die is iets anders.
In plaats van een waarde, het wijzigt een staat.
Dit staat bekend als een bijwerking.
In dit programma, de printf_fudd_style functie
heeft een return type dat we niet eerder hebben, ongeldig gezien.
>> Void wordt gebruikt om te zeggen dat een functie niet iets terug.
Er zijn geen variabelen van het type leegte,
dus als je probeert om iets terug van een functie als printf_fudd_style,
de compiler zal schreeuwen naar je.
Binnen printf_fudd_style, zien we dat, terwijl nog steeds de functie een taak uitvoert,
namelijk alle Rs schakelen naar Ws,
het punt van de functie is om een ​​string te wijzigen en af ​​te drukken op het scherm,
veranderen van de toestand van het programma in plaats van dat een resultaat.
Met behulp van deze functie lijkt sterk op het gebruik van onze plein en som functies,
behalve wij het resultaat niet op te slaan in een variabele of het af naar een andere functie
aangezien er geen resultaat naar van spreken.
Dus, als we compileren en uit te voeren onze Elmer Fudd programma,
zie je dat "U rascally konijn!" wordt getransformeerd recht op
"Je Wascally Wabbit!"
>> Ten slotte is er is nog 1 functie een discussie waard
omdat je hebt gebruikt het in elk C programma die je ooit hebt geschreven, de belangrijkste.
Belangrijkste is een functie net als alle andere.
Het heeft een return type, een naam, een lijst met argumenten, en een lichaam.
De return type van de belangrijkste is altijd een int,
en dit int wordt gebruikt om de status van het programma delen waar het eindigt.
>> Heeft het succesvol te laten verlopen, of is het vroegtijdig beëindigen vanwege een fout?
Terugkeren naar nul wijst op een succesvolle run,
en terugkerende niet-nul waarde geeft een foutmelding.
Afhankelijk van het soort programma dat u aan het schrijven bent,
terugkeren verschillende codes voor verschillende fouten kunnen nuttig
voor mensen die gebruik maken van uw programma later.
Mains argumenten zijn een beetje ingewikkelder.
>> De lijst met argumenten kan leeg zijn,
die we aanduiden met het schrijven van leegte in tussen de haakjes,
of de lijst kan beschikken over 2 argumenten: een int en een scala aan char * s.
Deze worden gebruikt wanneer uw programma wil gebruiken
argumenten die in op de opdrachtregel wanneer het programma wordt aangeroepen.
De int argument wordt meestal genoemd argc,
en is gelijk aan de lengte van de char * array, bekend als argv.
Argv bevat de opdrachtregel argumenten die in het programma.
In een ander kort, zullen we praten over hoe deze variabelen te gebruiken in meer detail.
Voor nu, voel je vrij om de belangrijkste van beide manier te verklaren.
Ik meestal voor kiezen om het op te schrijven van de kortere weg, zonder argumenten, indien mogelijk.
>> Nu je weet hoe de functies schrijven,
je bent goed op weg naar de ontwikkeling van grotere, meer complexe programma's.
Mijn naam is Nate Hardison. Dit is CS50.