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

question-closed O co chodzi z wunused values i jak je naprawić?

Object Storage Arubacloud
0 głosów
158 wizyt
pytanie zadane 15 marca 2020 w C i C++ przez SCpl Użytkownik (590 p.)
zamknięte 2 lipca 2020 przez SCpl

O to fragment mojego kodu. Te zmienne mają przypisane wartości!

    double balans0;
    double balans1;
    double balans2;
    double balans3;
    double balans = (16 * balans0 + 17,6 * balans1 + 19,2 * balans2 + 20,8 * balans3);

Z jakiegoś powodu w tym przypadku piątą linijkę wykrywa jako błąd, ale taki, z którym program może się uruchomić. Gdy wyświetlam wartość balans to pisze inf. Proszę niech ktoś mi powie o co chodzi.

komentarz zamknięcia: Już wszystko wiem. :D
1
komentarz 15 marca 2020 przez Whistleroosh Maniak (56,980 p.)
To nie jest błąd tylko ostrzeżenie, mówiące że tworzysz zmienną i nadajesz jej wartość, a potem w żaden sposób jej nie wykorzystujesz. W ogóle zmienne balans0...balans3 nie mają przypisanych wartości, to jeżeli gdzieś indziej ich jakoś nie przypisujesz to popraw to.
komentarz 15 marca 2020 przez SCpl Użytkownik (590 p.)

Jest napisane "Te zmienne mają przypisane wartości". Wykorzystuje i to siedem razy.

double balans_effi = (balans * balans_effi0 + balans * 1,1 * balans_effi1 + balans * 1,2 * balans_effi2 + balans * 1,3 * balans_effi3 + balans * 1,4 * balans_effi4 + balans * 1,5 * balans_effi5 + balans * 1,4 * balans_effi6);

 

1
komentarz 15 marca 2020 przez Whistleroosh Maniak (56,980 p.)
Nie wiem co dokładnie chcesz liczyć, ale liczby zmiennoprzecinkowe jak 1.4 zapisujemy za pomocą kropki, nie przecinka
1
komentarz 15 marca 2020 przez tkz Nałogowiec (42,000 p.)

[-Wunused-value], a [-Wuninitialized] jest znacząca różnica. Spostrzeżenie Whistleroosh jest błędne, bo "błąd" nie wynika z niezainicjowanej wartości. 

Poza tym zmiennoprzecinkowe liczby oddzielamy kropką, nie przecinkiem. Pokaż kod z którym masz problem. 

1
komentarz 15 marca 2020 przez Whistleroosh Maniak (56,980 p.)
To że te zmienne są niezainicjowane nie powiedziałem odnośnie tego ostrzeżenie unused-value, tylko dodalem, mając nadzieję że autor posta to poprawi. Choć może to nie wynikało z mojego komentarza
komentarz 16 marca 2020 przez SCpl Użytkownik (590 p.)

A dobra napisałem przecinki zamiast kropek enlightened. Tego to po sobie bym się nie spodziewał. Już wszystko działa smiley.

komentarz 16 marca 2020 przez SCpl Użytkownik (590 p.)
Tak to już bywa gdy najpierw przeliczasz w notatniku, a później kopiujesz.
1
komentarz 16 marca 2020 przez tkz Nałogowiec (42,000 p.)

Sam błąd wynika z interpretacji operatora przecinka przez kompilator. 

Wyrażenie

    int a = 3;
    int b = 3;
    int c = (a*3, b*5);

jest interpretowane od lewej, czyli ((c = (a*3)), b*5) Samo ostrzeżenie wynikało z ignorowania 16 * balans0 + 17,6 * balans1 + 19,2 * balans2 + 20.

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf strona 139. 

1
komentarz 16 marca 2020 przez Whistleroosh Maniak (56,980 p.)
Rzeczywiście. Nie zauważyłem, że tam też były przecinki zamiast kropek

Podobne pytania

0 głosów
0 odpowiedzi 594 wizyt
0 głosów
2 odpowiedzi 91 wizyt
pytanie zadane 26 marca 2020 w C i C++ przez Sashimo Użytkownik (740 p.)

92,579 zapytań

141,432 odpowiedzi

319,663 komentarzy

61,964 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...