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



Teraz jest 21 gru 2025, o 12:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 2 sie 2017, o 12:59 
Offline
Użytkownik

Dołączył(a): 08 wrz 2012
Posty: 505
Pomógł: 6

Ma pytanie tak proste a mimo to zaczynam się gmatwać. Dobrze mi się wydaje, że musi zwrócić "liczba1" gdy zostanie spełniony warunek1, "liczba2 gdy spełniony będzie warunek2 itd?
Czasami otrzymuję "liczbaX" a czasami zwrot "0" mimo spełnionych warunków 1 lub 2 lub 3. Musze mieć chyba namieszane w reszcie kodu.

[code]unsigned int liczby()
{

if(warunek1) return liczba1;
if(warunek2) return liczba2;
if(warunek3) return liczba3;

return 0;
}

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sie 2017, o 14:13 
Offline
Użytkownik

Dołączył(a): 23 sty 2014
Posty: 1085
Pomógł: 73

Tom277 napisał(a):
Dobrze mi się wydaje, że musi zwrócić "liczba1" gdy zostanie spełniony warunek1, "liczba2 gdy spełniony będzie warunek2 itd?


Dobrze Ci się wydaje



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sie 2017, o 14:20 
Offline
Użytkownik

Dołączył(a): 06 maja 2014
Posty: 415
Lokalizacja: Kraków
Pomógł: 26

Pierwszy napotkany return (czyli tutaj po spełnieniu warunku if) powoduje zakończenie i powrót z funkcji.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2017, o 05:36 
Offline
Użytkownik

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

Tom277 napisał(a):
Czasami otrzymuję "liczbaX" a czasami zwrot "0" mimo spełnionych warunków 1 lub 2 lub 3. Musze mieć chyba namieszane w reszcie kodu.

Przedstawiłeś za mało kodu, aby coś dokładniej powiedzieć, ale taka sytuacja może się zdarzyć np. wtedy, gdy funkcja jest wywołana w pętli głównej programu, a wyrażenie 'warunek' zawiera zmienną modyfikowaną w procedurze obsługi przerwania. Trzeba wtedy zadbać o atomowość operacji porównania (czyli wyłączyć tymczasowo obsługę przerwań), coś w stylu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ewentualnie przedstaw większy fragment kodu (ogranicz kod do minimum, które odzwierciedla problem), podaj jakiś zarys konstrukcji programu, bo na podstawie tego co podałeś, to można tylko zgadywać.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2017, o 05:46 
Offline
Użytkownik

Dołączył(a): 08 wrz 2012
Posty: 505
Pomógł: 6

Dziękuję za odpowiedź. W sumie to raczej znałem odpowiedź na swoje pytanie a Wy utwierdziliście mnie w przekonaniu, że jest słuszna. Myślę, że problem leży w bałaganie jaki zrobiłem w kodzie i tu jest źródło problemów.

Pozdrawiam



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: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO