Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C++ - Dużo komunikatów kompilatora

niemawolnego 23 Mar 2016 19:48 528 4
  • #1 23 Mar 2016 19:48
    niemawolnego
    Poziom 2  

    Witam serdecznie, otóż ćwicząc w Dev C++ 5.11 proste zadania na maturę z informatyki zauważyłam wiele komunikatów od kompilatora popełniając tylko jeden błąd. Odnoszą się też do wierszy których nawet nie zapisałam. Wcześniej korzystałam z Code::Blocks i tam w komunikatach pojawiała się jedynie informacja o błędzie w danym wierszu, nic więcej. Z góry dziękuję za pomoc i dołączam zdjęcie.
    (Wiem że błąd jest w siódmej linijce, poprawiając nawiasy wszystko działa ok)

    0 4
  • #2 23 Mar 2016 20:26
    mi14chal
    Poziom 27  

    Bo powinno być cin >> pierwsza;

    0
  • #3 23 Mar 2016 20:29
    niemawolnego
    Poziom 2  

    Wiem o tym. Nie chodzi mi o to gdzie jest błąd, tylko dlaczego jest tak wiele dziwnych komunikatów pod spodem? I nie tyczy się to tylko tego przypadku. Kiedy zrobię błąd innego typu też pojawiają się komunikaty do niezapisanych wierszy.

    0
  • Pomocny post
    #4 23 Mar 2016 21:20
    Krzysztof Gustaw
    Poziom 23  

    Witam!
    Mnie się wydaje, że wynika to z przebiegu kompilacji i tak:
    Najpierw kod źródłowy po przetworzeniu przez preprocesor trafia do kompilatora który tworzy pośredni kod wykonywalny np program.obj. Ten z kolei trafia do linkera który przeprowadza łączenie Twojego kodu z różnymi bibliotekami, których funkcje są niezbędne do wykonania programu, a które już ktoś dla nas napisał. Na tym etapie jest przeprowadzana również kontrola błędów, ale wykrywane są tutaj niezgodności z funkcjami bibliotecznymi których prototypy zawarte są chociażby w pliku nagłówkowym "iostream.h" a jest tego naprawdę sporo zwłaszcza, że z poziomu iostream wywoływane są jeszcze kolejne biblioteki. To po pierwsze. Po drugie - są różne poziomy błędów np błąd śmiertelny, błąd fatalny, błąd, ostrzeżenie, uwaga itp. I tak: np błąd śmiertelny; po wykryciu takiego błędu kompilator nie ma już nic do roboty tylko zakończyć natychmiast działanie, błąd fatalny - kompilator wydobywa się z niego ale dalszy a kompilacja już nic nie da. Błąd - kompilator wydobywa się z niego ale jest w stanie go "naprawić" i dalej kontynuować działanie choćby w celu wykrycia dalszych błędów. Inna sprawa, że najczęściej te dalsze błędy wynikają z błędnej "naprawy" poprzedzającego/poprzedzających błędów co pociąga "powstawanie" kolejnych i stąd ta kumulacja błędów.
    To tak ogólnie.
    KG
    PS
    Czytając zrzut ekranu sądzę, że oprócz ukazania wykrytego błędu to kompilator w dalszej części udziela wskazówek gdzie ewentualnie może leżeć przyczyna powstania błędu, w końcu biblioteki mogą być pisane nie tylko przez producenta kompilatora ale również przez Ciebie czy kolegę.
    W opcjach kompilatora możesz sobie ustalić "poziom błędów".

    0
  • #5 23 Mar 2016 22:00
    niemawolnego
    Poziom 2  

    Dziękuję bardzo za tak obszerną odpowiedź :) Zdziwiłam się na początku, bo zazwyczaj jedyne komunikaty jakie miałam do tej pory to np. "brakuje średnika na końcu 7 linijki". I to wszystko, aż tu nagle 64 komunikaty do jednego błędu :D Tak więc jeszcze raz dziękuję, temat do zamknięcia.

    0