[C++] int main()


(Kanaliaon) #1

Witam, nie rozumiem czemu się pisze zawsze int main(), znaczy się main jest obiektem integer?

Liczbą całkowitą? Niech to ktoś wyjaśni, bo tego nawet nie ma w Symfonii C++ wyjaśnionego...


(mohames) #2

Występujące na początku słowo kluczowe void mówi kompilatorowi, że nasz program nie

będzie informował systemu operacyjnego o wyniku swojego działania. Niektóre programy

robią to poprzez zwracanie liczby – zazwyczaj zera w przypadku braku błędów i innych

wartości, gdy wystąpiły jakieś problemy. Nam to jest jednak zupełnie niepotrzebne – w

końcu nie wykonujemy żadnych złożonych operacji, zatem nie istnieje możliwość

jakiekolwiek niepowodzenia8.

Gdybyśmy jednak chcieli uczynić systemowi zadość, to powinniśmy zmienić nagłówek na

int main() i na końcu funkcji dopisać return 0; - a więc poinformować system o

sukcesie operacji. Jak jednak przekonaliśmy się wcześniej, nie jest to niezbędne.

Wszystko ładnie opisane w darmowym kursie od zera do gier kodera:

http://rapidshare.com/files/201930704/od_zera_do_gier_kodera.pdf


(Sawyer47) #3

int main() { ... } to przecież funkcja, i to specjalna bo wywoływana jako pierwsza w programie. A int przed nazwą oznacza to samo co w każdej funkcji, zwracany typ, wartość całkowitoliczbowa. Wartość ta jest przekazywana do systemu operacyjnego i przyjęło się, że kod 0 oznacza działanie aplikacji zakończone sukcesem. Wbrew temu co mówi mohames funkcja main musi zwracać typ int, może w czasach przed standardem C++ kompilatory dopuszczały zapis void main, ale żaden nowoczesny kompilator raczej nie powinien pozwalać na to.


(Quentin) #4

Ja bym na razie mu to nie opisywał w skrócie bo może to jeszcze bardziej zagmatwać sprawę. W Symfonii C++ znajdziesz wyjaśnione wszystko na ten temat w rozdziale 5 - czyli o funkcjach. Są tam odpowiedzi na wszystkie twoje pytania :wink:


(Kanaliaon) #5

Ok dzięki dopiero jestem na 3 rozdziale