[Powered by Google Translate] Funktioner er kodesektioner anvendes inden for en større program
at udføre en bestemt opgave.
De er også kendt som procedurer, subrutiner, og underprogrammer,
da de virkelig er blot mini-programmer inden for programmerne.
Selvom du måske ikke har bemærket,
du absolut have brugt funktioner, allerede hvis du har programmeret i C.
Når du skriver ting til skærmen med printf,
du rent faktisk bruger en funktion kaldet printf.
Ligeledes GetInt og GetString er funktioner, CS50 giver mulighed for dig.
Som programmører bruger vi funktioner for en række årsager.
>> Under funktioner til at udføre almindelige opgaver som at skrive til skærmen
og spørge brugeren for input sparer os tid, når du programmerer.
Det er ikke nødvendigt at skrive kode til at gøre de samme ting
da de allerede er gjort for os.
Det er ikke engang nødvendigt for os at forstå præcis, hvordan disse funktioner fungerer internt.
I stedet har vi bare nødt til at vide, hvordan man bruger eller ringe til dem i vores programmer.
Det er også nyttigt at skrive funktioner i større programmer
selvom du ikke planlægger at have andre bruger dem,
bare for at opdele større opgave.
Denne måde, du giver struktur til din kode meget gerne du ville give struktur til et essay,
og med virkelig store projekter du aktiverer flere personer
at arbejde med forskellige dele samtidigt
da det er tydeligt, hvor én persons arbejde slutter og en anden er begynder.
>> Funktioner, der typisk opererer på 1 eller flere indgange, der er kendt som argumenter eller parametre,
omdanne disse input til output værdi, der returneres derefter.
Men det er også muligt at have funktioner, der ikke bruger nogen inputargumenter
og ikke vende tilbage en udgang.
Okay, nok med fluffy ting.
Lad os tage et kig på nogle reelle funktioner i C.
>> Her har vi en funktion kaldet firkant, der, tro det eller ej,
beregner kvadratet på input.
Lad os dissekere syntaksen for den.
Det første ord, du ser i funktion, int,
angiver returtypen af ​​funktionen, det vil sige C-typen af ​​funktionens output.
Denne funktion vil udsende en værdi med typen int.
Det næste ord, du ser, er navnet på den funktion, firkantede i dette tilfælde.
Navngivning funktioner hensigtsmæssigt er særlig vigtigt
da det er formentlig den mest synlige dokumentation af, hvad funktionen gør.
Det kan være fedt at kalde denne funktion Shazam eller Booyah,
men det ville ikke fortælle os noget om, hvad funktionen gør.
>> Efter funktionsnavn komme indgangene til den funktion, de argumenter.
De er opført inde i et sæt af parenteser
med både deres type og et navn at bruge for dem i selve funktionen.
Square tager kun 1 argument, den int til pladsen,
som jeg har besluttet at give navnet x.
Dette afslutter funktionen angivelse eller prototype.
De krøllede parenteser omkring resten af ​​funktionen
angiver begyndelsen og slutningen af ​​funktionen organ,
definitionen af ​​selve funktionen.
Square er en temmelig simpel funktion.
Det fik kun 1 linie, da alt vi skal gøre, er at formere x af sig selv.
Ordet afkast angiver udgangsværdien og udløser slutningen af ​​funktionen.
Hvis du vil bruge den firkantede funktion, er vi nødt til at levere de relevante indgange
og derefter fange output.
Her kan du se et par måder at gøre det.
Vi kan passere i en rå int, ligesom 6, eller vi kan passere i en variabel som en.
Bemærk, at hver gang vi kalder firkantet,
vi fange output i en variabel og derefter udskrive det.
Men vi ikke nødt til at gemme returværdien i en variabel og derefter udskrive.
Vi kunne bare sende det direkte til printf, som vi gør, når vi firkantet 10,
men det betyder, at vi ikke har adgang til returværdien af ​​firkanten 10
andre steder i koden.
Lad os se på et andet simpelt eksempel.
>> Denne gang vil vi opsummere 2 flyder sammen, så vi kan se, hvad en funktion ligner
når det har fået 2 indgange i stedet for blot 1.
Som du kan se, det er ikke meget anderledes.
Alt hvad vi gør, er at tilføje i 2. argument, en svømmer ved navn b,
til argumentet listen ved hjælp af en komma for at adskille det fra det første argument, en flyde.
Så vores firkantet og summen funktioner er ret nemt at forstå
fordi de er ækvivalent med funktioner, som du har set før i matematik klasse.
Lad os nu se på en funktion, der er lidt anderledes.
I stedet for at returnere en værdi, ændrer det en stat.
Dette er kendt som havende en bivirkning.
I dette program, printf_fudd_style funktionen
har en returtype, som vi ikke har set før, ugyldig.
>> Void bruges til at sige, at en funktion ikke returnerer noget.
Der er ingen variabler af typen ugyldig,
så hvis du forsøger at returnere noget fra en funktion som printf_fudd_style,
compileren vil råbe på dig.
Inde printf_fudd_style ser vi, at mens funktionen stadig udfører en opgave,
nemlig skifte alle R'er til Ws,
punktet af funktionen er at ændre strengen, og derefter printe det ud på skærmen,
ændring af tilstanden af ​​programmet i stedet for at returnere et resultat.
Brug af denne funktion er meget gerne bruge vores plads og summen funktioner,
bortset fra at vi ikke gemmer resultatet i en variabel eller videregive det ud til en anden funktion
da der ikke er resultat at tale om.
Så når vi kompilere og køre vores Elmer Fjot program,
du se, at "Du rascally kanin!" bliver transformeret ret til
"Du wascally Wabbit!"
>> Endelig er der 1 mere funktion værd at diskutere
siden du har brugt det i hvert C-program, du nogensinde har skrevet, main.
Main er en funktion ligesom enhver anden.
Det har fået en returtype, et navn, en liste over argumenter, og en krop.
Afkastet type hoved er altid en int,
og denne int bruges til at kommunikere status for programmet, når den er færdig.
>> Gjorde det kører korrekt, eller endte det tidligt på grund af en fejl?
Vender tilbage til nul indikerer en vellykket løbe,
og returnere en ikke-nul værdi indikerer en fejl.
Afhængigt af den type program, du skriver,
returnere forskellige koder til forskellige fejl kan være nyttigt
for personer, der bruger dit program senere.
Mains argumenter er lidt mere kompliceret.
>> Argumentet liste kan enten være tom,
som vi angiver ved at skrive tomrum i mellem parenteserne,
eller listen kan have 2 argumenter: en int og en vifte af char * s.
Disse bruges når dit program har til hensigt at bruge
argumenter gik i på kommandolinjen, når programmet kaldes.
Den int argument kaldes typisk argc,
og det er lige længden af ​​char * array, kendt som argv.
Argv indeholder de kommandolinjeargumenter gik ind i programmet.
I en anden kort, vi taler om, hvordan man bruger disse variabler mere detaljeret.
For nu kan du velkommen til at erklære main begge veje.
Jeg typisk vælger at skrive det ud den kortere vej, uden argumenter, når det er muligt.
>> Nu hvor du ved, hvordan man skriver opgaver,
du er godt på vej til at udvikle større og mere komplekse programmer.
Mit navn er Nate Hardison. Det er CS50.