Mindegy hogy melyik változatot használom C++ ban?
/* Egy programozó belém kötött hogy az int main függvényben nem hagyható el a return 0 pedig lefordul nélküle mi a helyes? Visual studiot hasznalok */
int main() {} // egyik haveromnak csak így fordul le a kód
short main {} // Így is működik.
void main() {} /* ezt használnám.És így is jó mindenhogy jó. */
Értem a típusokat.Ha tudom,hogy a main függvény nem fog vissza adni értéket akkor void main()lesz.
De valakinek baja van ezzel.
"/* Egy programozó belém kötött hogy az int main függvényben nem hagyható el a return 0 pedig lefordul nélküle mi a helyes? Visual studiot hasznalok */"
Igaza van.
"int main() {} // egyik haveromnak csak így fordul le a kód
short main {} // Így is működik.
void main() {} /* ezt használnám.És így is jó mindenhogy jó. */"
Ezek közül egyik sem helyes, int main(){return 0;} helyes.
Ha korrekt lenne a fordító akkor a fenti 3 változat egyikét sem fordítaná le. Az ISO C++ szabványa szerint csak az fordítható a 3 közül ami egyik haverodnak.
Egyáltalán tisztába vagy a c++ - beli függvényekkel? A main függvényt ki hívja meg és hova tér vissza?
Nem tudom,hogy a maint ki hívja meg nem volt leírva a könyvben.
tanuljuk meg a c++ programozási nyelvet 24 óra alatt című könyv.
"Nem tudom,hogy a maint ki hívja meg nem volt leírva a könyvben."
Az gondolom le volt írva ha van egy függvényem ami nem void visszatérési értékű akkor mindig kell bele return. A main-t az operációs rendszer hívja meg illetve a hívó program kvázi a programod tekinthető egy függvénynek ami a main függvény, visszatérési értékét a hívó program kapja meg illetve az operációs rendszer. Ha a main 0-ával tér vissza az azt jelenti hogy sikeresen lefutott a program, ha 1-el az hibát jelent, egyéb érték nem szokott lenni, de egyéni megállapodás szerint lehet más is. Ha hiányzik az int main-nek a return 0 akkor nem garantált hogy 0-ával tér vissza. Mondhatod hogy ezt az értéket nem használja fel semmi (jelen esetben), de legyünk tisztába a szabályos programírással, adott esetben nagy szívás lehet ha így szoktad meg.
"Akkor a visual studio rosszul fordít?"
Egyéni "tájszólása" van a fordítónak. Sok fordítónál van olyan hogy adott kódot lefordít de a másik nem, nem ISO C++ szabványos kódról van szó. Nem véletlenül van szabvány.
Próbáltam nagyobb programot fordítani GNU GPL licenc-ű programot, ott a melegebb éghajlatra elküldeném aki nem szabványos kódot írt és a miatt nem fordul és ott kell vele kínlódni, hiába használom ugyan azt a fordítót mint ő ha a fordítási beállítások nem egyeznek meg.
Ha tanultad volna egyetemen és kötelező programot kellett volna írnod és nem fordul a kód az ő gépükön, akkor nem érdekli őket nem fogadják el.
Megoldás: a fordítót szigorú szabványkövetési módba kell állítani.
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!