Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 19 kwi 2024, o 00:32


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 16 paź 2018, o 06:47 
Offline
Użytkownik

Dołączył(a): 29 paź 2017
Posty: 230
Pomógł: 26

Pisząc jakiś projekt napotkałem na jeden problem.
Kompilator zgłasza mi warning-a :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Napisałem kod od nowa ograniczając go do konstrukcji jak poniżej
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Gdy odkomentuję linę
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

kompilator nie czepia się zmiennej ala.
Czy ma ktoś pomysł dlaczego tak się dzieje?

_________________
Jestem na GG 31324
Nowy soft, nowa nadzieja.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2018, o 07:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1148
Lokalizacja: Kraków
Pomógł: 93

Tak, jak napisano w opisie warninga: do zmiennej 'ala' przypisujesz wartości, ale tej zmiennej nie używasz w programie.
Ten warning jest związany z tym, że zajmujesz niepotrzebnie miejsce w pamięci procka.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2018, o 07:38 
Offline
Użytkownik

Dołączył(a): 29 paź 2017
Posty: 230
Pomógł: 26

Marhef napisał(a):
Tak, jak napisano w opisie warninga: do zmiennej 'ala' przypisujesz wartości, ale tej zmiennej nie używasz w programie.
Ten warning jest związany z tym, że zajmujesz niepotrzebnie miejsce w pamięci procka.

OK
To rozumiem. Ale dlaczego gdy w case2:
wpiszę ala++;
to kompilator się nie czepia?
Oprócz tego że się inkrementuje to też nie jest używana.

_________________
Jestem na GG 31324
Nowy soft, nowa nadzieja.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2018, o 08:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1148
Lokalizacja: Kraków
Pomógł: 93

Jest użyta do inkrementacji ;)
Nie potrafię wytłumaczyć, dlaczego przypisanie wartości nie jest równoznaczne z jej użyciem, tu potrzeba głębszej znajomości języka C niż moja



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2018, o 08:10 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

JarekB napisał(a):
Oprócz tego że się inkrementuje to też nie jest używana.

Kompilator nie rozumie tego w ten sposób. On tylko po prostu sprawdza, czy na zmiennej są wykonywane zarówno operacje odczytu jak i zapisu.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


EDIT:
Oczywiście sprawa jest dyskusyjna (bo w rzeczywistości zmienna przecież nie jest używana, więc warning powinien być) i była nawet zgłaszana już dość dawno jako błąd (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44677), ale chyba niełatwo problem rozwiązać...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2018, o 09:09 
Offline
Użytkownik

Dołączył(a): 29 paź 2017
Posty: 230
Pomógł: 26

Dzięki !

_________________
Jestem na GG 31324
Nowy soft, nowa nadzieja.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 9 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO