[Powered by Google Translate] Funkcije su dijelovi koda koji se koriste u sklopu šireg programa za obavljanje određenog zadatka. Oni su također poznat kao procedure, potprograme, i potprogrami, jer su oni zapravo samo mini programi unutar programa. Iako možda niste primijetili, što svakako imati koristi funkcije već ako ste programirali u C. Kada pišete stvari na zaslonu pomoću printf, ste zapravo koristite funkciju printf zove. Isto tako, GetInt i GetString su funkcije koje CS50 pruža za vas. Kao programera, mi koristimo funkcije za nekoliko razloga. Nakon što je funkcija za izvođenje uobičajenih zadataka kao što je pisanje na zaslon i pitajući korisnika za ulaz štedi nam vrijeme kada programiranja. To nije potrebno napisati kod za napraviti one iste stvari budući da su već učinio za nas. To nije ni potrebno za nas da shvatimo kako točno one funkcije rade interno. Umjesto toga, samo moramo znati kako koristiti ili nazovite ih u našim programima. To je također korisno napisati funkcije u veće programe čak i ako ne planirate da ih drugi koriste, samo podijeliti veći zadatak pri ruci. Na taj način ćete dati strukturu kodu baš kao što bih dao strukturu eseja, i stvarno velike projekte omogućite više osoba raditi na različitim dijelovima u isto vrijeme budući da je jasno gdje jedna osoba je djelo završava, a drugi je počinje. Funkcije obično rade na jednom ili više ulaza, poznat kao argumente ili parametara, pretvarajući one ulaze u izlazne vrijednosti koje se potom vratio. Međutim, to je također moguće da su funkcije koje ne koristite nikakve ulazne argumente i ne vrate izlaz. Ok, dosta fluffy stvari. Idemo pogledati neke stvarne funkcije u C. Ovdje imamo funkciju zove trg koji, vjerovali ili ne, izračunava kvadrat ulaz. Ajmo secirati sintaksu njega. Prva riječ koju vidite u funkciji, int, određuje povratnu vrstu funkciju, to jest, C tip funkciji je izlaz. Ova funkcija će ispisati vrijednost s tipa int. Sljedeći riječ koju vidite je naziv funkcije, kvadrat u ovom slučaju. Imenovanje funkcije prikladno je osobito važno jer je vjerojatno najvidljiviji dokumentacija što je funkcija radi. To bi moglo biti cool nazvati ovu funkciju Shazam ili booyah, ali da ne bi nam reći nešto o tome što funkcija radi. Nakon funkcija Naziv dolaze ulaze u funkciji, argumenti. Oni su navedeni unutar skupa zagradama s obje njihove vrste i naziv koristiti za njih unutar tijela funkcije. Trg traje samo jedan argument, int na trgu, koji sam odlučio dati ime x. Ovaj završava funkcije deklaraciju ili prototip. Zavojite aparatić okolnih ostatak funkcije označavaju početak i kraj tijela funkcije, definicija funkcije same. Trg je prilično jednostavna funkcija. To je samo dobio jedan redak, jer sve što morate učiniti je pomnožiti x sama po sebi. Riječ povratak određuje izlaznu vrijednost i aktivira kraj funkciji. Da biste koristili kvadratni funkciju, moramo dostaviti odgovarajuće ulaze a zatim hvatanje izlaz. Ovdje možete vidjeti nekoliko načina da radiš. Možemo proći u sirovom int, kao što su šest, ili možemo proći u varijablu poput. Imajte na umu da svaki put zovemo trg, uhvatimo izlaz u varijablu i zatim ga ispisati. Međutim, mi nemamo pohraniti povratnu vrijednost u varijablu i zatim ispisati. Mi smo samo mogli poslati ga izravno na printf kao i mi kad smo trg 10, ali to ne znači da mi nemamo pristup povratnom vrijednosti trgu 10 drugdje u kodu. Pogledajmo drugi jednostavnom primjeru. Ovaj put, mi ćemo sumirati dvije pliva zajedno, tako da možemo vidjeti što funkcija izgleda kada je dobio dva ulaza, umjesto samo jednog. Kao što možete vidjeti, to nije puno drugačija. Sve što učiniti je dodati u drugi argument, float nazvan b, na popis argumenata pomoću zarez ga odvojiti od prvog argumenta, plutaju. Dakle, naš trg i iznos funkcije su prilično lako razumjeti jer oni su ekvivalent funkcija koje ste vidjeli prije u math class. Sada, pogledajmo funkcija koja je malo drugačija. Umjesto da se vrate vrijednost, ona modificira stanje. To je poznato kao vlasništvo nuspojava. U ovom programu, printf_fudd_style funkcija ima povratni tip koji nismo vidjeli prije, nevažeće. Void je znao reći da funkcija ne vraća ništa. Nema varijabli tipa prazninu, pa ako vam pokušati vratiti nešto od funkcija kao što printf_fudd_style, prevodilac će vikati na tebe. Unutar printf_fudd_style, vidimo da, dok funkcija još uvijek obavlja zadatak, Naime, prebacivanje svih Re za Ws, točka funkcije za izmjenu string, a zatim ga ispisati na zaslonu, mijenja stanje programa, umjesto povratka rezultat. Koristeći ovu funkciju je vrlo slično pomoću naše trg i zbroj funkcija, osim što ne pohraniti rezultat u varijabla ili ga proći s drugom funkcijom jer nema posljedica govoriti. Dakle, kad smo sastaviti i pokrenuti našu Elmer Fudd program, vidiš da je "Vi raskalašno zec!" dobiva transformira pravo "Vi wascally wabbit!" Konačno, tu je jedan više funkcija vrijedi opisala jer ste ga koristite u svakom C programu ste ikada napisana, glavni. Glavna je funkcija baš kao i svaka druga. To je dobio povratnu vrstu, ime, popisa argumenata, i tijelo. Povratni tip glavnih uvijek int i to int koristi za komunikaciju status programa, kada to završi. Je li to uspješno pokreću, ili je to kraj rano zbog pogreške? Povratak na nulu označava uspješan rad, i vraćanja nule vrijednost ukazuje na pogrešku. Ovisno o vrsti programa pišete, povratka različite kodove za različite pogreške mogu biti korisne za ljude koji koriste svoj program kasnije. Mains su argumenti malo kompliciranije. Popis argument može biti prazna, koje upućuju prema pisanju prazninu između zagradama, ili popis može imati dva argumenta: int i niz char * s. Oni se koriste kada vaš program namjerava koristiti argumenti prošao u na naredbenog retka kada program pozivati. Int argument obično naziva argc, i to je jednaka duljina char * niz, poznat kao argv. Argv sadrži argumente naredbenog retka prošao u programu. U drugom Ukratko, razgovarat ćemo o tome kako koristiti ove varijable u više detalja. Za sada, možete slobodno proglasiti glavni ovako ili onako. Ja obično izabrati to napisati kraći put, bez argumenata, kada je to moguće. Sada kada znate kako napisati funkcije, ste dobro na Vašem putu prema razvoju veće, složenije programe. Moje ime je Nate Hardison. Ovo je CS50.