Kezdőoldal » Számítástechnika » Programozás » C és C++ programozási nyelvekb...

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?

Figyelt kérdés

2020. okt. 13. 01:58
 1/8 anonim ***** válasza:

Igen, tényleg.

Ha ilyesmire vetemednél, egyből dob egy hátast a fordító:

[link]

2020. okt. 13. 02:21
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
0%

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.

2020. okt. 13. 08:07
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:
45%
Általában az előbbi, de amúgy ez undefined behavior, mert a compilerekre nincs szabvány, semmi nem tiltja, hogy olyat írj, ami valami dummy adatot rak a regiszterbe, csak nincs túl sok haszna.
2020. okt. 13. 08:11
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
50%

#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.

2020. okt. 13. 10:25
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:
Általában a függvény által visszaadott érték egy regiszterbe kerül, jellemzően EAX vagy EDX:EAX. Egy void típusú függvény visszatérésekor is biztos lesz valami ebben a regiszterben (pl. előző művelet ott maradt adata), de eleve olyan kódot generál a fordító, ami a hívó oldalon nem fog vele kezdeni semmit. Szóval mondhatjuk, hogy nem, nem ad vissza semmit.
2020. okt. 15. 01:53
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:
0%

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.

2020. okt. 15. 05:17
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:
#7-es még a kérdést sem értette.
2020. okt. 15. 05:20
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:

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]

2020. okt. 15. 05:52
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!