[Powered by Google Translate] A funkciók szakaszai kód egy nagyobb program végrehajtani egy adott feladatot. Ők is ismert eljárások, szubrutinok és alprogramok, mert tényleg csak mini programokat programokat. Annak ellenére, hogy talán nem is vette észre, Ön bizonnyal már használt funkciók már, ha már programozott C. Amikor írsz dolgokat a képernyőn printf, Ön tényleg használ nevezett funkció printf. Hasonlóképpen, getInt és getString olyan funkciók, CS50 előírja az Ön számára. Mint programozó, használjuk funkciók több okból. Tekintettel funkciók elvégzésére közös feladatok, mint az írás a képernyőre és a felhasználó megkérdezése a bemeneti megment minket, amikor programozás. Nem kell kódot írni tenni ugyanezeket a dolgokat mivel ők tették számunkra. Ez még csak nem is szükséges, hogy megértsük, hogy pontosan hogyan működnek azok a funkciók belsőleg. Ehelyett csak azt kell tudni, hogyan kell használni, vagy hívja őket a programokban. Az is hasznos, hogy írjon funkciók nagyobb volumenű programok még akkor is, ha nem tervezi, amelyek mások használják őket, Csak feldarabolni a nagy feladathoz. Így adsz struktúra a kódot ugyanúgy, mint azt adni szerkezet egy esszé, és az igazán nagy projektek Ön engedélyezi több ember dolgozni különböző részeire egy időben mivel ez világos, ha egy személy munkája véget ér, és egy másik az kezdődik. Funkciók általában működnek 1 vagy több bemeneten nevei érveket vagy paraméterek átalakítása a vizekbe kimeneti értéket, majd vissza. Ugyanakkor az is lehetséges, hogy olyan funkciók, amelyek nem használnak semmilyen bemeneti argumentumok és nem tér vissza a kimenetet. Oké, elég a bolyhos cucc. Vessünk egy pillantást néhány valós függvények a C Itt van egy függvényt nevű tér, akár hiszed, akár nem, kiszámítja a tér a bemenet. Nézzük boncolgatni a szintaxis azt. Az első szó, amit látni a funkció, int, meghatározza a visszatérési típus a függvény, azaz, a C típusú a függvény kimenetét. Ez a funkció kiírja egy értéket típusú int. A következő szó, amit lát, az a neve, a funkció, tér ebben az esetben. Elnevezési funkciók megfelelően különösen fontos mivel ez talán a leginkább látható dokumentációt, amit a függvény. Lehet, hogy jó, hogy nevezze ezt a funkciót Shazam vagy booyah, de ez nem mond semmit arról, hogy mi az adott függvény. Miután a függvény neve jön a bemenetek a funkciót, az érveket. Ezek felsorolása belsejében egy sor zárójel mind a típus és a nevet használja őket a szervezetben a funkciót. Tér mindössze 1 érv a int a tér, amely úgy döntöttem, hogy adja meg a nevét x. Ez véget vet a funkció nyilatkozat vagy prototípus. A kapcsos zárójelek körülvevő többi funkció jelölik a kezdete és vége a függvény test, a meghatározása a funkciót is. Tér egy nagyon egyszerű függvény. Ez csak 1 sort, hiszen minden, amit meg kell tennie, hogy szorozzuk x magától. A szó visszatérés határozza meg a kimeneti értéket, és kiváltja a vége a függvény. Ahhoz, hogy a tér funkciót, meg kell bocsátani a megfelelő bemenetek majd elfog a kimenetet. Itt látható egy pár módon csinálja. Mi lehet átadni a nyers int, mint a 6, vagy mi is eltelhet egy változó, mint egy. Ne feledje, hogy minden egyes alkalommal hívunk square, hogy elfog a kimenetet egy változó, majd nyomtassa ki. Azonban nem kell tárolni a visszatérési értéket egy változó, majd nyomtassa ki. Így egyszerűen küldje el közvetlenül a printf, mint mi, mikor tér 10, de ez nem jelenti azt, hogy nem férnek hozzá a visszatérési érték tér 10. máshol a kódot. Nézzünk egy egyszerű példát. Ezúttal fogjuk összefoglalni 2 úszik együtt, hogy tudjuk milyen egy függvény néz ha van 2 bemenet helyett csak 1. Amint látod, ez nem sokban különbözik. Minden teszünk hozzá, a 2. érv a float nevű b, A paraméterek listája egy vesszővel, hogy elkülönüljön az első érv, lebeg a. Szóval, a tér és az összeg funkciók elég könnyen érthető mert ők azonos funkciókat, hogy már látott matematikai osztály. Most nézzük meg, hogy a funkció némileg eltérő. Ahelyett, hogy visszatért egy érték, módosítja az állam. Ez az úgynevezett, amelynek mellékhatás. Ebben a programban, a printf_fudd_style funkció van egy visszatérési típus, amit még nem látott, semmis. Void is szokta mondani, hogy a függvény nem ad vissza semmit. Nincsenek változók típusa void, így ha megpróbál visszatérni valamit függvény hasonló printf_fudd_style, a fordító fog kiabálni veled. Belül printf_fudd_style, azt látjuk, hogy míg a funkció továbbra is végrehajtja a feladatot, nevezetesen, kapcsoló minden Rs a Ws, a lényeg a funkció, hogy módosítsa a húr, majd nyomtassa ki a képernyőn, megváltoztatása az állam a program helyett a visszatérő eredményt. Ezen funkció használata nagyon hasonlít a mi tér és összege funkciók, kivéve, hogy nem tárolja az eredményt a változó vagy át ki másik funkció mivel nincs eredménye beszélni. Tehát, amikor összeállításához és futtatásához a Elmer Fudd program, látod, hogy "Te hitvány nyúl!" gets transzformált jog "Te wascally Wabbit!" Végül, van még 1 függvény érdemes megvitatni mert már használja minden C program, amit valaha írt, fő. Main függvény ugyanúgy, ahogy minden más. Van rajta egy visszatérési típus, egy nevet, egy listát az érvek, és egy test. A visszatérési típus fő mindig egy int, és ez az int használják kommunikál az állapotát a programot, amikor befejezi. Vajon sikeresen lefut, vagy nem ez idő előtti befejezése egy hiba miatt? Visszatérve a nulla jelzi a sikeres run, és vissza semmilyen nem nulla érték azt jelzi, egy hiba. Attól függően, hogy milyen programot írsz, visszatérő különböző kódokat különböző hibák, hasznos lehet az emberek, akik használják a programot a későbbiekben. Hálózati érvek egy kicsit bonyolultabb. Az érvelés lista lehetnek üres, amelyhez jelezni írásban void között a zárójelben vagy a lista van 2 érvek: egy int és egy sor char * s. Ezeket akkor használjuk, ha a program kívánja használni érveket telt el a parancssorból, ha a program hivatkoznak. Az int érv általában nevezik argc, és ez azonos a hossza a char * tömb, az úgynevezett argv. Argv tartalmazza a parancssori argumentumok a programba. Egy másik Röviden, fogunk beszélni, hogyan kell használni ezeket a változókat részletesebben. Most, akkor bátran kijelentem fő mindkét irányban. Én általában úgy dönt, hogy írja ki a rövidebb utat, nem érvek, ha lehetséges. Most, hogy tudod, hogyan kell írni funkciók, te is az utat a fejlődő nagyobb, komplex programok. A nevem Nate Hardison. Ez CS50.