Nem régen kezdtem programozni (próbálkozni inkább) C nyelven. Mi a különbség a void és int main között, valamint mi a return 0; haszna és mikor kell 0 helyett más értéket megadni?
Programot azért írunk, mert el akarunk végeztetni a géppel egy feladatot. Nos, el elsülhet úgy, hogy a program sikeresen ellátta a feladatát, vagy épp valami hiba miatt ez nem jött össze neki. Ezt valamilyen úton-módon az operációs rendszer felé illik visszajelezni, mivel ez befolyásolhatja más programok működését. Legyen szó akármilyen rendszerről, a 0 jelenti azt, hogy sikeresen lefutott a program, bármi más egész szám, ha hiba történt.
Nos, mindezt C-ben ezt úgy oldották meg, hogy a program belépési pontja (az a pont, ahol a programot elkezdjük végrehajtani) legyen a main függvény. Ennek a függvénynek a visszatérési értéke jelzi, hogy a program sikeresen lefutott-e vagy sem.
>> Mi a különbség a void és int main között
Inkább "void" és "int" között.
- void fgv() { /* ... */ }
Elvégez egy feladatot (procedúra), de visszatérési eredményt nem generál. Bár megakasztható egy "return;" paranccsal.
- int fgv() { /* ... */ }
Előzővel ellentétben kiköp egy int típusú értéket.
- A main függvénynek mindig int a visszatérési értéke. (Nem tudok más return típusról C-ben.) A többi okokat fentebb leírták.
>> valamint mi a return 0; haszna és mikor kell 0 helyett más értéket megadni?
Szintúgy fentebb megtalálod a magyarázatot. Szóval én csak annyit tennék hozzá, hogy ha sikeresnek véled a futást, akkor "return 0;" mehet a main-be. Ha magad szeretnéd generáltatni a hibát, akkor értelem szerűen "return x;", ahol az x > 0. De, hogy ezt if-be teszed, vagy hova, már maga a program tervezésétől függ.
Teszem azt, kicsit barbár, de nah. :D
int main() {
... int a = 3;
... if((11 mod 4) == 2) {
... ... return 0;
... } else {
... ... return 1; /* ide lyukad ki */
... }
}
maradékos osztás (nem tudom, hogy tanultad-e de egy kis help):
(11 mod 4) == Y azaz 11:4 = 2 maradék: 3 ami, ha egyenlő Y-al, akkor TRUE.
(15 mod 4) == Z azaz 15:4 = 3 maradék: 3. Így:
(11 mod 4) == (15 mod 4) is TRUE.
void fff() { ... }
- ez elvegez egy feladatot, de nem dob vissza semmi erteket
int fff() { ... }
- ez elvegez egy feladatot, es a vegen visszadob egy egesz szamot (integer), mint valasz
A "main" fuggveny az mindig a belepo pont a programba, es altalaban mindig "int main()"-kent hasznaljuk! A "void main()" is mukodik, de azt nem ajanlott hasznalni, mert nem kapsz visszajelzest, hogy mi tortent.
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!