Miért nem fordul le az egyik for ciklus, míg a másik igen?
1.
for (int i = 0; i < 10; 8) {
}
2.
for (int i = 0; i < 10; getNum()) {
}
int getNum(){
return 8;
}
holott mindkettő 8-at jelent.
Az elsőnél a léptető utasítás helyére egy sima literált írsz, amivel a fordító nem tud mit kezdeni, hiszen nincs balérték megadva.
A második esetében a léptető utasítás meghívja a getNum() függvényt, majd az eredményét eldobja, hiszen itt sincs balérték, viszont így már értelmezhető, mert ugye nem kötelező felhasználni egy függvény visszatérési értékét, ellenben egy literál bal érték ugye nem lehet, jobb értékként viszont kellene neki megadni egy balértéket, mert egyébként nincs értelme.
Egyébként mit kellene csinálnia ott annak a 8-asnak? :)
Mert ez így (2.) egy végtelen ciklus.
Az oké, ami elsőnek elhangzott, de ez milyen nyelv és milyen fordító nem fordítja le?
Mert C-ben maximum valami unused value vagy hasonló warningot kapnál, ami alapból nem error.
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!