[Powered by Google Translate] Funksjoner er deler av koden som brukes i et større program
å utføre en bestemt oppgave.
De er også kjent som prosedyrer, subrutiner, og underprogrammer,
siden de egentlig er bare mini programmer innenfor programmene.
Selv om du kanskje ikke har lagt merke til,
du mest definitivt har brukt funksjoner allerede hvis du har programmert i C.
Når du skriver ting på skjermen ved hjelp av printf,
du faktisk bruke en funksjon kalt printf.
Likeledes, GetInt og GetString er funksjoner som CS50 gir for deg.
Som programmerere, bruker vi funksjoner for en rekke årsaker.
>> Å ha funksjoner for å utføre vanlige oppgaver som å skrive til skjermen
og spørre brukeren om innspill sparer oss tid når du programmerer.
Det er ikke nødvendig å skrive kode for å gjøre de samme tingene
siden de er allerede gjort for oss.
Det er ikke engang nødvendig for oss å forstå nøyaktig hvordan disse funksjonene fungerer internt.
I stedet, vi må bare vite hvordan du skal bruke eller ringe dem i våre programmer.
Det er også nyttig å skrive funksjoner i større programmer
selv om du ikke har tenkt på å ha andre bruker dem,
bare for å dele opp større oppgaven.
Denne måten, gir du struktur i koden mye som du ville gi struktur til et essay,
og med virkelig store prosjekter kan du flere personer
å arbeide på forskjellige deler på samme tid
siden det er klart hvor en person arbeid slutter og en annen er begynner.
>> Funksjoner typisk operere på en eller flere innganger, kjent som argumenter eller parametere,
transformerer disse innganger til en utgangsverdi som blir deretter returnert.
Men det er også mulig å ha funksjoner som ikke bruker noen argumenter
og ikke returnere en utgang.
Ok, nok med fluffy ting.
La oss ta en titt på noen reelle funksjoner i C.
>> Her har vi en funksjon som heter kvadrat som, tro det eller ei,
beregner kvadratet av inndata.
La oss dissekere syntaksen det.
Det første ordet du ser i funksjon, int,
spesifiserer returtypen av funksjonen, dvs. den C-type for funksjonens utgang.
Denne funksjonen vil sende en verdi med type int.
Det neste ordet du ser er navnet på funksjonen, firkantet i dette tilfellet.
Navngi funksjoner riktig er spesielt viktig
siden det er trolig den mest synlige dokumentasjon av hva funksjonen gjør.
Det kan være kult å nevne denne funksjonen Shazam eller Booyah,
men det ville ikke fortelle oss noe om hva funksjonen gjør.
>> Etter funksjonen navnet kommer innganger til funksjonen, argumentene.
De er oppført i et sett med parenteser
med både type og et navn å bruke for dem i kroppen av funksjonen.
Square tar bare ett argument, int til torget,
som jeg har besluttet å gi navnet x.
Dette avslutter funksjonen erklæringen eller prototype.
De klammeparentes omgir resten av funksjonen
betegne begynnelsen og slutten av funksjonen kroppen,
definisjonen av funksjonen selv.
Square er en ganske enkel funksjon.
Det er bare fikk en linje, siden alt vi trenger å gjøre er multiplisere x av seg selv.
Ordet avkastning spesifiserer output verdi og utløser slutten av funksjonen.
Å bruke plassen funksjonen, må vi gi de riktige innganger
og deretter fange utgang.
Her ser du et par måter å gjøre det på.
Vi kan passere i en rå int, som 6, eller vi kan passere i en variabel som en.
Vær oppmerksom på at hver gang vi kaller plassen,
Vi registrerer utdata i en variabel og deretter skrive det.
Men vi trenger ikke å lagre returverdien i en variabel og deretter skrive ut.
Vi kunne bare sende det direkte til printf som vi gjør når vi square 10,
men dette betyr at vi ikke har tilgang til returverdien av torget 10
ellers i koden.
La oss se på et annet enkelt eksempel.
>> Denne gangen vil vi oppsummere to flyter sammen slik at vi kan se hva en funksjon ser ut
når det har to innganger i stedet for bare en.
Som du kan se, er det ikke mye annerledes.
Alt vi gjør er å legge i andre argument, en float heter b,
til argumentet listen med komma for å skille det fra det første argumentet, flyte en.
Så vår kvadrat og sum funksjoner er ganske lett å forstå
fordi de er tilsvarende funksjoner som du har sett før i matte klasse.
Nå, la oss se på en funksjon som er litt annerledes.
I stedet for å returnere en verdi, endrer det en stat.
Dette er kjent som har en bivirkning.
I dette programmet, printf_fudd_style funksjonen
har en avkastning type som vi ikke har sett før, annullert.
>> Void brukes til å si at en funksjon ikke returnerer noe.
Det er ingen variabler av typen veddemål,
så hvis du prøver å returnere noe fra en funksjon som printf_fudd_style,
kompilatoren vil kjefte på deg.
Inne printf_fudd_style, ser vi at mens funksjonen fremdeles utfører en oppgave,
nemlig bytte alle Rs til Ws,
poenget med funksjonen er å endre strengen og deretter skrive det ut på skjermen,
endre status på programmet i stedet for å returnere et resultat.
Ved hjelp av denne funksjonen er veldig mye som å bruke vår torget og sum funksjoner,
bortsett fra vi ikke lagrer resultatet i en variabel eller gi det bort til en annen funksjon
siden det ikke er resultatet å snakke.
Så, når vi kompilere og kjøre vår Elmer Midd program,
du ser at "Du rascally kanin!" blir forvandlet rett til
"Du wascally Wabbit!"
>> Endelig er det en mer funksjon verdt å diskutere
siden du har brukt det i hvert C program du noen gang har skrevet, viktigste.
Viktigste er en funksjon mye som alle andre.
Det fikk en retur type, et navn, en liste over argumenter, og en kropp.
Avkastningen type viktigste er alltid en int,
og denne int brukes til å kommunisere status for programmet når den er ferdig.
>> Gjorde det kjøres uten problemer, eller gjorde det slutt tidlig på grunn av en feil?
Tilbake til null indikerer en vellykket løp,
og tilbake noen annen verdi enn null indikerer en feil.
Avhengig av hva slags program du skriver,
retur forskjellige koder for ulike feil kan være nyttig
for personer som bruker programmet senere.
Strømnettet argumentene er litt mer komplisert.
>> Argumentlisten kan enten være tom,
som vi viser ved å skrive tomrom i mellom parentesene,
eller listen kan ha 2 argumenter: en int og en rekke char * s.
Disse brukes når programmet har til hensikt å bruke
argumenter gikk inn på kommandolinjen når programmet startes.
Int argument er vanligvis kalles argc,
og det er lik lengden av den char * matrisen, kjent som argv.
Argv inneholder kommandolinjeargumentene gått inn i programmet.
I en annen kort, vil vi snakke om hvordan du bruker disse variablene i mer detalj.
For nå kan du føle deg fri til å erklære viktigste uansett.
Jeg vanligvis velger å skrive det ut kortere vei, med noen argumenter, når det er mulig.
>> Nå som du vet hvordan du skal skrive funksjoner,
du er godt på vei til å utvikle større og mer komplekse programmer.
Mitt navn er Nate Hardison. Dette er CS50.