1 00:00:07,010 --> 00:00:09,640 [Powered by Google Translate] Toiminnot ovat koodiosia käytetään suurempaa ohjelmaa 2 00:00:09,640 --> 00:00:11,430 suorittaa tietyn tehtävän. 3 00:00:11,430 --> 00:00:15,060 Ne tunnetaan myös menettelyjä, aliohjelmat ja aliohjelmien, 4 00:00:15,060 --> 00:00:18,320 koska ne todella ovat vain mini ohjelmia ohjelmia. 5 00:00:18,320 --> 00:00:20,340 Vaikka et ehkä ole huomannut, 6 00:00:20,340 --> 00:00:24,090 olet varmasti käyttänyt toimintoja jo jos olet ohjelmoitu C 7 00:00:24,090 --> 00:00:26,770 Kun kirjoitat juttuja näytön avulla printf, 8 00:00:26,770 --> 00:00:29,380 olet todellisuudessa käyttävät toiminto nimeltään printf. 9 00:00:29,380 --> 00:00:33,760 Samoin GetInt ja GetString ovat toimintoja, jotka CS50 tarjoaa sinulle. 10 00:00:33,760 --> 00:00:37,750 Kuten ohjelmoijat, käytämme toiminnot useista syistä. 11 00:00:37,750 --> 00:00:41,240 >> Ottaa toiminnot suorittaa yleisiä tehtäviä, kuten kirjallisesti näytön 12 00:00:41,240 --> 00:00:44,480 ja kysyy käyttäjältä syötteitä säästää aikaa ohjelmoinnissa. 13 00:00:44,480 --> 00:00:47,510 Se ei ole tarpeen kirjoittaa koodia tekemään näitä samoja asioita 14 00:00:47,510 --> 00:00:49,520 koska he ovat jo tehneet meille. 15 00:00:49,520 --> 00:00:54,580 Se ei ole edes tarpeen meitä ymmärtämään, miten nämä toiminnot toimivat sisäisesti. 16 00:00:54,580 --> 00:00:58,880 Sen sijaan meidän täytyy vain osata käyttää niitä tai soittaa meidän ohjelmissa. 17 00:00:58,880 --> 00:01:02,040 On myös hyödyllistä kirjoittaa toimintoja suurempiin ohjelmiin 18 00:01:02,040 --> 00:01:04,330 vaikka et suunnittelun ottaa toisten käyttää niitä, 19 00:01:04,330 --> 00:01:06,830 vain jakaa suurempi tehtävä käsin. 20 00:01:06,830 --> 00:01:11,910 Näin annat rakenne koodi paljon kuin haluat jäsentää essee, 21 00:01:11,910 --> 00:01:15,180 ja todella suuria projekteja otat useita henkilöitä 22 00:01:15,180 --> 00:01:16,730 työskennellä eri osat samaan aikaan 23 00:01:16,730 --> 00:01:20,480 koska se on selvää, missä yhden henkilön työ päättyy ja toinen on alkaa. 24 00:01:20,480 --> 00:01:26,530 >> Toiminnot toimivat tyypillisesti 1 tai useamman tuloliitännän, kutsutaan väitteitä tai parametreja, 25 00:01:26,530 --> 00:01:30,520 muuttaa nämä panostukset lähdön arvoa, joka sitten palautetaan. 26 00:01:30,520 --> 00:01:34,950 On kuitenkin myös mahdollista saada toimintoja, jotka eivät käytä mitään syöttää argumentteja 27 00:01:34,950 --> 00:01:36,400 ja älä palauta tuotos. 28 00:01:36,400 --> 00:01:38,790 Okei, tarpeeksi pörröinen kamaa. 29 00:01:38,790 --> 00:01:41,790 Otetaan katsomaan joitakin todellisia toimintoja C. 30 00:01:41,790 --> 00:01:45,570 >> Täällä meillä on toiminto nimeltään neliö, että uskokaa tai älkää, 31 00:01:45,570 --> 00:01:47,570 laskee neliön tulo. 32 00:01:47,570 --> 00:01:49,490 Katsotaanpa leikellä syntaksia sitä. 33 00:01:49,490 --> 00:01:51,860 Ensimmäinen sana näet toiminnon, int, 34 00:01:51,860 --> 00:01:57,460 määrittää paluu toimintonäppäimen tyypin, eli C-tyypin funktion lähtöön. 35 00:01:57,460 --> 00:02:00,370 Tämä toiminto tulostaa arvon tyypin int. 36 00:02:00,370 --> 00:02:04,100 Seuraava sana näet on funktion nimi, neliö tässä tapauksessa. 37 00:02:04,100 --> 00:02:07,390 Nimeäminen toimintoja asianmukaisesti on erityisen tärkeää 38 00:02:07,390 --> 00:02:11,260 koska se on luultavasti näkyvin dokumentointi mitä toiminto tekee. 39 00:02:11,260 --> 00:02:14,880 Voisi olla siistiä nimetä tämän toiminnon Shazam tai Booyah, 40 00:02:14,880 --> 00:02:18,340 mutta se ei kerro meille mitään, mitä toiminto tekee. 41 00:02:18,340 --> 00:02:23,470 >> Jälkeen funktion nimi tulee panoksia toiminnon argumentteja. 42 00:02:23,470 --> 00:02:26,380 Ne on lueteltu sisällä joukko sulkeissa 43 00:02:26,380 --> 00:02:30,160 sekä niiden tyypin ja nimen käyttää niitä kehossa funktion. 44 00:02:30,160 --> 00:02:34,030 Square vie vain 1 väitettä, int neliö, 45 00:02:34,030 --> 00:02:36,160 jonka olen päättänyt antaa nimen x. 46 00:02:36,160 --> 00:02:40,760 Tämä päättyy toiminnon ilmoituksen tai prototyyppi. 47 00:02:40,760 --> 00:02:43,320 Aaltosulkumerkkien ympäröivän muun toiminnon 48 00:02:43,320 --> 00:02:45,870 Merkitään alussa ja lopussa toiminto elin, 49 00:02:45,870 --> 00:02:48,320 määritelmän toimintaa itse. 50 00:02:48,320 --> 00:02:50,300 Square on melko yksinkertainen funktio. 51 00:02:50,300 --> 00:02:54,100 Se sai vain 1 rivi, koska meidän täytyy tehdä, on moninkertaistaa x itse. 52 00:02:54,100 --> 00:02:59,250 Sana tuotto ilmoittaa lähdön arvo ja laukaisee pää-toimintoa. 53 00:02:59,250 --> 00:03:03,430 Voit käyttää neliö toimintoa, meidän toimittaa asianmukaiset tulot 54 00:03:03,430 --> 00:03:05,310 ja sitten kaapata lähdön. 55 00:03:05,310 --> 00:03:08,140 Täällä näet pari tapaa tehdä se. 56 00:03:08,140 --> 00:03:13,600 Voimme kulkea raaka int, kuten 6 tai voimme kulkea muuttuja kuin. 57 00:03:13,600 --> 00:03:15,700 Huomaa, että joka kerta me kutsumme neliö, 58 00:03:15,700 --> 00:03:18,330 me kaapata lähdön muuttuja ja tulosta se sitten. 59 00:03:18,330 --> 00:03:22,690 Emme kuitenkaan ole tallentaa palauttaa arvon muuttujaan ja tulostaa. 60 00:03:22,690 --> 00:03:27,090 Voisimme vain lähettää sen suoraan printf niin me teemme square 10, 61 00:03:27,090 --> 00:03:30,580 mutta tämä ei tarkoita, että meillä ei ole pääsyä palauttaa arvon neliö 10 62 00:03:30,580 --> 00:03:32,230 muualla koodin. 63 00:03:32,230 --> 00:03:34,890 Katsotaanpa toinen yksinkertainen esimerkki. 64 00:03:34,890 --> 00:03:38,750 >> Tällä kertaa me summa 2 kelluu yhteen, jotta voimme nähdä, mitä toiminto näyttää 65 00:03:38,750 --> 00:03:41,220 kun se sai 2 tuloa eikä vain 1. 66 00:03:41,220 --> 00:03:43,950 Kuten näette, se ei ole kovin erilainen. 67 00:03:43,950 --> 00:03:47,330 Kaikki mitä teemme on lisätä toinen argumentti, float nimeltään b, 68 00:03:47,330 --> 00:03:51,820 Väitteestä luettelon käyttämällä pilkkua erottamaan sen ensimmäisen väitteen, kellua. 69 00:03:51,820 --> 00:03:55,550 Joten meidän neliö ja summan toiminnot ovat melko helppo ymmärtää 70 00:03:55,550 --> 00:03:58,930 koska he vastaavat toiminnot että olet nähnyt ennen matematiikan luokassa. 71 00:03:58,930 --> 00:04:01,610 Nyt, katsotaanpa toiminto, joka on hieman erilainen. 72 00:04:01,610 --> 00:04:04,620 Sen sijaan palauttaa arvon, se muuttaa tilaan. 73 00:04:04,620 --> 00:04:07,260 Tämä tunnetaan, joilla on sivuvaikutus. 74 00:04:07,260 --> 00:04:10,750 Tässä ohjelmassa printf_fudd_style toiminto 75 00:04:10,750 --> 00:04:13,410 on palautuva, että emme ole ennen nähneet, mitätön. 76 00:04:13,410 --> 00:04:16,730 >> Void on tapana sanoa, että funktio ei palauta mitään. 77 00:04:16,730 --> 00:04:19,410 Ei ole muuttujia tyyppiä void, 78 00:04:19,410 --> 00:04:22,760 joten jos yrität palauttaa jotain toimintoa kuten printf_fudd_style, 79 00:04:22,760 --> 00:04:24,290 kääntäjä huutaa sinulle. 80 00:04:24,290 --> 00:04:29,390 Sisällä printf_fudd_style näemme, että vaikka funktio tekee yhä tehtävä, 81 00:04:29,390 --> 00:04:31,890 eli siirtyminen kaikkien Rs WS, 82 00:04:31,890 --> 00:04:36,380 pisteen tehtävänä on muuttaa merkkijonon ja sitten tulostaa sen näytölle, 83 00:04:36,380 --> 00:04:39,400 tilan muuttamiseen ohjelman sijasta palauttamalla tuloksen. 84 00:04:39,400 --> 00:04:43,700 Käyttämällä tätä toimintoa on hyvin samankaltainen kuin käyttämällä neliö ja summan toimintoja, 85 00:04:43,700 --> 00:04:46,950 paitsi emme säilytä johtaa muuttuja tai siirtää sen pois toisen toiminnon 86 00:04:46,950 --> 00:04:49,520 koska ei ole seurausta puhua. 87 00:04:49,520 --> 00:04:53,180 Joten, kun me kääntää ja ajaa meidän Elmeri ohjelman 88 00:04:53,180 --> 00:04:56,970 näet, että "Sinä ilkikurinen kani!" saa muuntaa oikeus 89 00:04:56,970 --> 00:04:58,730 "Sinä wascally Wabbit!" 90 00:04:58,730 --> 00:05:02,250 >> Lopuksi tulee vielä 1 toiminto kannattaa keskustella 91 00:05:02,250 --> 00:05:06,810 koska olet käyttänyt sitä kaikissa C-ohjelma olet koskaan kirjoittanut, tärkein. 92 00:05:06,810 --> 00:05:09,450 Main on funktio aivan kuten muitakin. 93 00:05:09,450 --> 00:05:13,580 Se sai palautuva, nimi, luettelo argumentteja, ja runko. 94 00:05:13,580 --> 00:05:16,110 Return tyyppi tärkein on aina int- 95 00:05:16,110 --> 00:05:19,120 ja tämä int käytetään viestimään aseman ohjelman, kun se päättyy. 96 00:05:19,120 --> 00:05:23,360 >> Oliko se suorittaa onnistuneesti, tai ei se lopettaa aikaisin virheen takia? 97 00:05:23,360 --> 00:05:26,390 Palaavat nollaan ilmaisee onnistuneen aikavälillä, 98 00:05:26,390 --> 00:05:29,510 ja palauta mitään ei-nolla-arvo osoittaa virheen. 99 00:05:29,510 --> 00:05:31,950 Riippuen millaisia ​​ohjelman olet kirjoittamassa, 100 00:05:31,950 --> 00:05:34,960 palaavat eri koodit eri virheet voivat olla hyödyllinen 101 00:05:34,960 --> 00:05:37,210 ihmisiä jotka käyttää ohjelmaa myöhemmin. 102 00:05:37,210 --> 00:05:40,220 Verkkovirta argumentit ovat hieman monimutkaisempi. 103 00:05:40,220 --> 00:05:42,150 >> Parametrilistaus voi olla joko tyhjä, 104 00:05:42,150 --> 00:05:45,330 jota osoittavat kirjoittamalla void välillä suluissa, 105 00:05:45,330 --> 00:05:50,220 tai luettelossa voi olla 2 argumentteja: int ja joukko char * s. 106 00:05:50,220 --> 00:05:52,820 Näitä käytetään, kun ohjelma aikoo käyttää 107 00:05:52,820 --> 00:05:56,490 väitteet hyväksyttiin komentorivillä kun ohjelma käynnistetään. 108 00:05:56,490 --> 00:05:59,690 INT väite tyypillisesti kutsutaan argc, 109 00:05:59,690 --> 00:06:03,300 ja se on yhtä suuri kuin pituus char * array, joka tunnetaan nimellä argv. 110 00:06:03,300 --> 00:06:07,080 Argv sisältää komentoriviargumentit siirtyi ohjelmaan. 111 00:06:07,080 --> 00:06:11,440 Toisessa lyhyt, me puhumme miten käyttää näitä muuttujia yksityiskohtaisemmin. 112 00:06:11,440 --> 00:06:15,220 Nyt voit vapaasti julistaa main joko tavalla. 113 00:06:15,220 --> 00:06:19,410 En yleensä valita kirjoittaa sitä lyhyempi tavalla, ilman perusteluja, kun se on mahdollista. 114 00:06:19,410 --> 00:06:22,230 >> Nyt osaat kirjoittaa toimintoja, 115 00:06:22,230 --> 00:06:25,030 olet hyvin teidän tapa kehittää suurempia, monimutkaisempia ohjelmia. 116 00:06:25,030 --> 00:06:29,740 Nimeni on Nate Hardison. Tämä on CS50.