Kezdőoldal » Számítástechnika » Programozás » C++ ban mikor használjuk...

C++ ban mikor használjuk főtörzsként a void main () -t, és mikor az int main () -t?

Figyelt kérdés

Mik a különbség a kettő közül? Láttam olyant is hogy voidon belül pl számértéket várunk vissza,miközben az int is ezt a funkciót tölti be.

Köszi ha valaki elmagyarázza!



2019. márc. 10. 22:18
 1/8 anonim ***** válasza:
50%

void, ha nem alkarsz értéket visszaadni, int ha valami egész számot visszaadsz. Pl. hibakódot.

Ez akkor jó, ha batch fileból hívod, vagy akár másik programból, akkor a visszatérési értékkel adhatsz vissza hibakódot, hibás futás esetén. Ha nincs ilyen szándékod, akkor void.


És nem használhatod főhadnagyként. :D

2019. márc. 10. 22:23
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
71%

A szabvány szerint a void main() nem létezik:

"it shall have a declared return type of typeint, but otherwise its typeis implementation-defined. An implementation shall allow both

— (2.1)a function of () returning int and

— (2.2)a function of (int pointer to pointer to char) returning int

as the type ofmain(11.3.5)."

Forrás: Standard for Programming Language C++ ( [link] )


De itt is írnak róla: [link]

Meg itt is: [link]


Egyes fordítók/fejlesztőkörnyezetek megengedik, de nem szabványos.

2019. márc. 10. 22:43
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:
100%

2: ennek ellenére több void-ot láttam életemben mint intet.

Bár mélyebben most c++-ozok először, egy beágyazott rendszeren. Korábban csak mikrokontrollert programoztam szórakozésból.

2019. márc. 10. 22:49
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
#2: Dehogynem létezik. a C99 szabvány megengedi a void main()-t is, sőt az új visual studio már alapból ezt generálja le. Habár azóta már változtattak a szabványon és most a C18 az aktuális, de nem találok ingyenes pdf-et, hogy meg tudjam nézni változott-e valami ezt illetően benne. Ha valaki megvenné esetleg, akkor elmondhatná mit írnak benne...: [link]
2019. márc. 10. 22:59
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:

Különben a C99 ezt írja róla:


"(5.1.2.2.1) It shall be defined with a return type of int and with no parameters

[...]

or with two parameters

[...]

or in some other implementation-defined manner"


Az utolsó sor miatt szabványos a void main().

2019. márc. 10. 23:00
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:
93%

"2: ennek ellenére több void-ot láttam életemben mint intet.


Bár mélyebben most c++-ozok először, egy beágyazott rendszeren."

Beágyazott rendszereknél használatos:

"// BUT in embedded programming depending on the µC, this form is also used

void main (void);"

Forrás: [link]


"Dehogynem létezik. a C99 szabvány megengedi"

A C99 szabvány nem C++ szabvány - amiről a kérdező értekezik - hanem C-szabvány. Ne keverjük össze!


De egyébként a C-nyelv 2005-ös munkatervezete így értekezik:

"The function called at program startup is namedmain. The implementation declares no prototype for this function. It shall be defined with a return type of int and with no parameters:

int main(void) { /*...*/ }

or with two parameters (referred to here as argc and argv, though any names may beused, as they are local to the function in which they are declared):

int main(int argc, char *argv[]) { /*...*/ }

or equivalent; or in some other implementation-defined manner."

Forrás: [link]

vagy itt a 2007-es: [link]


"Az utolsó sor miatt szabványos a void main()."

Nem, nem szabványos. Egész értéket KÖTELES (shall!!!) visszaadnia.

2019. márc. 10. 23:32
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

#5 "Különben a C99 ezt írja róla"

Különben a C nem C++, a C99 pedig főleg nincs kihatással a C++ szabványára (C18-at meg sem említem).

2019. márc. 10. 23:50
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:

Beágyazottnál is int a main, még ha értelme nincs is.


Amúgy meg a C pont telibe szarja, hívhatsz full void függvényt paraméterrel, vagy paramétereset anélkül, max elszáll az egész, de miután az esetek 99%-ban édes mind1, hogy 0, 1 vagy memóriaszemét a main return értéke, így igazából mind1 mit küld vissza.


tl.dr: inteset használd az a szép.

2019. márc. 12. 10:41
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!