[Powered by Google Translate] CHRIS GERBER: A funkció egy sor lépést egy nagyobb program, amelyet általában szánt lehet nevezni többször és több más helyszíneken a programot. Amikor egy C függvény, az egyik követelményeknek az adja meg a visszatérési érték típusát. A legegyszerűbb eset az, amikor a hívó kódot nem érinti az eredménye a funkciót. Ez lehet a helyzet, ha mi nyomtat a felhasználói kijelző, mint a printf. Ebben az esetben, akkor nyilvánítja a visszatérési értéket lenni típusú semmis. A void egyszerűen azt mondja a fordító, hogy nem értéket ad vissza. Lássuk, mi ez néz ki. Tegyük fel, hogy van egy függvényt nevű say_hello hogy vesz egy érv. Majd adja át a személy nevét, és megjelenik egy üdvözlő a képernyőn. A név lesz típusú char *. És mi határozza meg, hogy mivel az érvelést. Az alkalmazás nem kell tudni, hogy mi volt nyomtatva vagy ha volt nyomtatva. Tehát a visszatérési értéke lesz típusának semmis. Ez a funkció lehet nyomtatni a képernyőn egy ehhez hasonló paranccsal printf ("Hello% s \ n ", Név). Az üdvözlés jelenik meg, és ellenőrzés kerül átadásra vissza a hívó kódot. Egy dolog megjegyezni, hogy amikor a visszatérési érték típusa void, akkor nem kell, hogy tartalmazza a visszatérés nyilatkozatot a funkciót. Ha úgy dönt, hogy egy, nem tartalmazzák a visszatérési értéket érvként. Egyes esetekben, akkor van értelme, hogy visszatérjen a értéket egy függvény. Tegyük fel, hogy írtak egy függvényt nevű add_floats. Majd adja át a két érv, mind úszók, az úgynevezett első és a második. És azt fogja mondani, hogy mi az összege e úszók is. Tudjuk, hogy ha mi adjunk hozzá két úszik együtt, az eredmény lesz egy úszó. Tekintettel arra, hogy válasszon egy visszatérési típusú úszó. Ez a funkció elvégzi ezt a számítást, és visszatér az értékeket egy nyilatkozatot, mint a visszatérés 1. + 2.,. Ha a vezérlés visszakerül a hívó kódot, a kapott érték már elérhető az adott kódot. Mi lehet tárolja ezt az értéket így: float result = add_floats (3,14, 1,62 ),. Eredmény ebben az esetben már tartalmazza az érték 4,76. Emlékeztetőül, lebegőpontos értékek pontatlan. Szóval, ha ez egy pénzügyi számítás segítségével dollár és cent, akkor azt szeretné, hogy a pontos adatok típusát, mint például int és végezze el a számítást fillérekért. Egy másik eset, ahol szeretne visszatérni egy értéket egy funkció, ha tudni akarjuk, hogy ha egy függvény sikeres. Ha ez nem sikerül, mi is szeretnénk tudni, hogy milyen típusú hiba történt. Tegyük fel, hogy próbálunk megnyitni egy fájlt a lemezen számít karakterek számát benne. Ha a fájl nem nyitható meg, azt akarjuk, hogy képes legyen megállni és mondja a felhasználót a problémáról. Hívjuk meg a függvényt count_file_chars és ez lesz egyet érv. Majd át a fájl nevét egy char * nevű fájlneve. Ez a funkció úgy nézhet ki, mint ez. Ebben a példában, azt várnánk a gróf visszatért értéke 0 vagy ennél nagyobb. Ez meghagyja nekünk a negatív egészeket használni sentinel értékek. A sentinel érték egyszerűen egy speciális érték, amely nem jogos az adatokat, de nem közvetít információt. Itt, ha visszatérek a -1 a hívó kódot, én vagyok ténylegesen elküldi az üzenetet, hogy hiba történt a megpróbál hozzáférni a fájlhoz. Tudtam akkor ellenőrizze, hogy a visszatérési érték meghatározására, ha a függvényhívás sikeres volt. Ha ez a szám volt a 0 vagy nagyobb, én ismerem a karakterek száma a fájl. Ha azonban a szám kisebb, mint a 0, I egyszerűen nyomtatni, hogy probléma történt. Egy kompromisszum, hogy fontolja meg, hogy a fenn valamennyi negatív értékek sentinel értékek, feltételezve, hogy ez egy 32-bites egész, én alapvetően elvették körül 2000000000 lehetséges visszatérési értékek. Visszatérési érték típusok az egyik legfontosabb eleme függvény hívások. Remélhetőleg ez a rövid áttekintés segített gondol három fő típusa van: void, eredmény értékek és sentinel értékek, és amikor mindhárom lehet megfelelő kódot. Köszönöm, hogy néz.