• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

funkcja main w programowaniu c++

VPS Starter Arubacloud
+1 głos
2,909 wizyt
pytanie zadane 3 lipca 2018 w C i C++ przez Sic Dyskutant (8,510 p.)

Moje pytanie dotyczy głównie sensu i działania funkcji main().

Zazwyczaj schemat tworzenia programu wygląda tak:

....
int main()
{
......
return 0; //w bardzo wielu przypadka zwraca 0
}...

i teraz moje pytanie czy zawsze główna funkcja musi mieć typ danych ? Czy może go nie mieć i nic nie zwracać ?

A jeżeli tak to jakie są tego konsekwencje ?

1
komentarz 3 lipca 2018 przez Mariusz08 Maniak (62,300 p.)

Czy może go nie mieć i nic nie zwracać ?

A jeżeli tak to jakie są tego konsekwencje ?

Programowanie to eksperymenty - spróbuj usunąć return, skompiluj program i zobacz co się stanie ;)

4 odpowiedzi

+3 głosów
odpowiedź 3 lipca 2018 przez monika90 Pasjonat (22,940 p.)
edycja 3 lipca 2018 przez monika90
Każda funkcja w C++ ma jakiś typ który zwraca (może być to void, są też wyjątki jak konstruktory i destruktory), kiedy deklarujesz funkcję to musisz ten typ podać, bez tego masz błąd składni. Dodatkowo w przypadku main typem tym musi być int.

Być może kompilator, którego używasz akceptuje main bez podanego typu, ale to jest niestandardowe zachowanie i jest tylko po to by zachować kompatybilność z jakimś bardzo starym kodem, który powstał w czasach przed standardem z 1998 roku.
+1 głos
odpowiedź 3 lipca 2018 przez profesorek96 Szeryf (91,420 p.)
Wszystkie programy w C++ muszą mieć funkcje main. Od niej zaczyna życie każdy program. Wyjątkiem są biblioteki, one nie zawierają funkcji o nazwie main. Musi zwracać, jeśli zwraca zero to info dla systemu że program zakończył swoje działanie poprawnie jak by zwróciła inną wartość to jest jednoznaczne info że jest jakiś błąd.
+1 głos
odpowiedź 3 lipca 2018 przez Hiskiel Pasjonat (22,830 p.)

Jeśli chodzi o C++, to nawet gdy nie dodass, kompilator doda to sam. Wartość ta jest ta jest zwracana do systemu. Gdy działanie programu się skończy w zmiennej errorlevel będzie kod wyjscia (chyba tak się to nazywa, exit code) ostatniego programu. Zobacz to sobie.

C:/Users/Abc/Desktop> a.exe
C:/Users/Abc/Desktop> echo %errorlevel%

W C, gdzie trzeba return X dać nie wiem co się stanie jeśli nie dasz. Zapewne errorem kompilatora.

 

Zazwyczaj wartość 0 oznacza poprawne działanie programu, a każda inna błąd.

komentarz 3 lipca 2018 przez Sic Dyskutant (8,510 p.)

Tak wiem że musi być 'main()', jednak mi się rozchodzi o typ danych (zazwyczaj jest to 'int') czy można bez jego wykorzystywania programy (bez żadnych konsekwencji)?

Napisałem program:

#include <iostream>

main()
{
int m = 5; std::cout << m;
}

Dokładnie coś takiego program się skompilował i włączyć oraz pokazał wartość 5.

komentarz 3 lipca 2018 przez Hiskiel Pasjonat (22,830 p.)
Z tego co widziałem na godbolt.org ta wersja oraz wersja z intem wygląda tak samo (w assemblym) więc pewnie kompilator to dodaje.
0 głosów
odpowiedź 3 lipca 2018 przez Ptaszor3 Użytkownik (900 p.)
funkcja główna nie musi zwracać żadnej wartości. Tyle wiem.
komentarz 3 lipca 2018 przez Ptaszor3 Użytkownik (900 p.)
#include <iostream>

using namespace std;

int main()
{
    int l = 1;
    cout << l;
}

Dowód dla niedowiarków.

komentarz 3 lipca 2018 przez Hiskiel Pasjonat (22,830 p.)
Ponieważ kompilator sam doda.
komentarz 3 lipca 2018 przez Ptaszor3 Użytkownik (900 p.)
Rozumiem i dziękuje!

Podobne pytania

0 głosów
1 odpowiedź 721 wizyt
+1 głos
2 odpowiedzi 313 wizyt
pytanie zadane 3 kwietnia 2021 w C i C++ przez Dawidziu Bywalec (2,610 p.)
0 głosów
1 odpowiedź 196 wizyt
pytanie zadane 8 stycznia 2020 w C i C++ przez Mavimix Dyskutant (8,390 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...