Trzeba uważać na to co się zwraca w main bo może ona zostać czasami obcięta. W systemach posix, np w shellu bash dostaniemy 1 bajt, a kod błędu ostatniej instrukcji można sobie wyświetlić poleceniem "echo $?". Kod -1 da nam 127 bo 32 bitowy int zostanie obcięty do jednego bajta. Przyjęło się że 0 oznacza sukces a liczba różna od zera błędne wykonanie programu. Zwrócenie jednak np 256 po obcięciu da 0 i może inne programy wprowadzić w błąd. Kod ten przydaje się w skryptach, np: "g++ -o test1 test1.cpp && ./test1". Podwójny && testuje kod błędu komendy po lewej stronie i gdy program zwrócił 0 to wykona polecenie po prawej. Pod windowsem mamy oczywiście pełny zakres 32 bitowy.
@@KoW Dzieki. Tzn. wiedzialem co to jest char ale jakos nie zalapalem odrazu tego. Ogolnei ucze sie z ksiazek, ale ten temat wyjatkow byl tak napisany , ze masakra i nic nie zrozumialem z rozdzialu, ktory z 5 razy czytalem a ty dales rade to wytlumaczyc przystepnie i okazuje sie to bardzo proste (a czytajac w ksiazce myslalem ze to jakies niewiadomo co). Z tego widac , ze chyba dobrze czasem uczyc sie od kilku autorow , bo kazdy ma swoj styl pisania i nie zawsze jest to umiejetnie wytlumaczone.
Nie. Ten zapis oznacza(używaj przestrzeni nazw std). Kiedy tylko kilka lub jedna przestrzeni nazw jest używana to nie ma potrzeby za każdym razem pisać std::. To jest niepotrzebne i przeszkadza ponieważ zajmuje miejsce.
No kochom cie po prostu, bardzo dobrze wytlumaczone, dziękuję bardzo :)
Dziękuję!
Dobrze wytłumaczone, dziękuje.
Dziekujeeeeeeeeeeeeee!
Zapraszam do skorzystania z pełnej "ścieżki programisty C++" - strefakursow.pl/sciezki_kariery/c_developer.html?ref=87991
dzieki
Trzeba uważać na to co się zwraca w main bo może ona zostać czasami obcięta. W systemach posix, np w shellu bash dostaniemy 1 bajt, a kod błędu ostatniej instrukcji można sobie wyświetlić poleceniem "echo $?". Kod -1 da nam 127 bo 32 bitowy int zostanie obcięty do jednego bajta. Przyjęło się że 0 oznacza sukces a liczba różna od zera błędne wykonanie programu. Zwrócenie jednak np 256 po obcięciu da 0 i może inne programy wprowadzić w błąd.
Kod ten przydaje się w skryptach, np: "g++ -o test1 test1.cpp && ./test1". Podwójny && testuje kod błędu komendy po lewej stronie i gdy program zwrócił 0 to wykona polecenie po prawej.
Pod windowsem mamy oczywiście pełny zakres 32 bitowy.
Dzięki bardzo, nie wnikałem w to aż tak głęboko.
@@KoW spoko, tak wspomniałem o tym bo mi to kiedyś krwi napsuło :D.
Czemu rzucasz intem a nie jakimś obiektem klasy wyjątku dziedziczącym po std::exception? To zła praktyka.
a czemu ta instrukcja z const char* nie przechwytuje tego znaku 'e' ? Skoro to jest wlasnie char?
Bo char to tak naprawdę liczba, tylko gdy chcemy go odczytać jako tekst to jest znak :)
@@KoW Dzieki. Tzn. wiedzialem co to jest char ale jakos nie zalapalem odrazu tego. Ogolnei ucze sie z ksiazek, ale ten temat wyjatkow byl tak napisany , ze masakra i nic nie zrozumialem z rozdzialu, ktory z 5 razy czytalem a ty dales rade to wytlumaczyc przystepnie i okazuje sie to bardzo proste (a czytajac w ksiazce myslalem ze to jakies niewiadomo co). Z tego widac , ze chyba dobrze czasem uczyc sie od kilku autorow , bo kazdy ma swoj styl pisania i nie zawsze jest to umiejetnie wytlumaczone.
Czemu nie korzystasz z std:: tylko na górze to wpisujesz jako namespace std, to błędna nauka patrząc w przód i dalszą edukację
Nie. Ten zapis oznacza(używaj przestrzeni nazw std). Kiedy tylko kilka lub jedna przestrzeni nazw jest używana to nie ma potrzeby za każdym razem pisać std::. To jest niepotrzebne i przeszkadza ponieważ zajmuje miejsce.