C és C++ programozási nyelvekben a void visszatérési típusú függvények tényleg nem adnak vissza semmit, vagy pedig valamilyen szimbolikus értéket/adatot továbbítanak a hívó félnek?
Egy függvény mindig azt (a tipust) adja vissza, ami neki visszatérési értékként definiálva van.
Ha történetesen void, akkor nem ad vissza semmit.
A dolog úgy kezdődött, hogy Ken Thomson és Dennis Ritchie azt képzelte, hogy a kis pöcs, minimalista nyelvüket, a C-t a kutya nem fogja használni, legalábbis rajtuk kívül. Ezért a procedúrákat bele sem tervezték, gondolták, elég lesz nekik a függvény is, legfeljebb majd néha, ha kelleni fog, vmi kamu visszatérési értékkel használják procedúra helyett, ami (mármint a visszatérési érték) úgy sem fog hasznosulni sehol. Akkor meg tökmindegy, hogy mi.
Hát, így is lett.
#2: Értem én, hogy a kis lankadt kukackád miatt komoly frusztrációid vannak, de tudod, nem mindenki olyan agyhalott, mint te.
Az filozófiai kérdés, hogy az alprogramokat hány részre bontjuk. Amellett is lehet érvelni, hogy legyenek külön eljárások és függvények, de amellett is, hogy csak függvények legyenek. Előbbi meleltt érv a nyelvi elemek markánsabb megkülönböztetése, és a matematikai definíciókhoz való komolyabb ragaszkodás (ugyanis az analízisben a függvény kell, hogy szolgáltasson eredményt), utóbbi mellett pedig komoly érv a hasonló feladatot ellátó elemek egységes kezelése. Egyik sem jobb, vagy rosszabb a másiknál, csak egyszerűen más filozófiát követ.
A 6-os megint butaságot kukorékol.
Hogy a kérdés is meg legyen válaszolva, helyesen:
A void tipusú függvények nem állítanak elő visszatérési értéket, hiszen nem is függvények, hanem eljárások. Ezért a meghívásuk is úgy történik, ahogy az eljárásokat hívjuk, tehát, nem adjuk át az értéküket semminek, azaz nem lesznek változók értékei, kifejezések elemei, sem egy másik függvény, vagy eljárás bemenő paraméterei, stb.
Ebből következően a void tipusú "függvényeknek" nincs is olyanjuk, hogy visszatérési érték.
Aki fentiek ellenére egy void tip. függvény esetében is return-öl valamit az egyszerűen hülye. Void-nál nincs olyan, hogy return.
A voidmint visszatérési típus
A függvények visszatérési értékének típusát rögzíteni kell.
A típus (mint tudjuk) meghatározza a típussal végezhető műveletek körét.
A void egy olyan típus, amellyel nem lehet semmiféle műveletet végezni. Semmilyen másik típus nem kompatibilis a void típussal sem implicit, sem explicit módon.
Lehetetlen olyan kifejezést írni, amely típusa void. Ezért a void visszatérési típusú függvényekben a return (ha van is) után nem lehet kifejezést írni. A void típusú függvény által visszaadott értéket nem lehet eltárolni változóban, megvizsgálni, felhasználni kifejezésben.
Ezért egyszerűbben fogalmazva, a void visszatérési típusú függvények nem adnak vissza értéket, azt feldolgozni már csak ezért sem lehet. Az ilyen függvényeket eljárásoknak (procedure) hívjuk.
forrás: [link]
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!