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:
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ć.