Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

C++ problem z goto


Rekomendowane odpowiedzi

Opublikowano

Mam coś takiego

void myFunction1(void * dummy) {

	while (true)
	{
        Sleep(50);
        if (znak)
        goto sekwencja1; //<blad wywala w tym miejscu
        }
_endthread();
}

w mainie mam

_beginthread(myFunction1, 0, 0);
sekwencja1:

Dlaczego wywala??

1>Source.cpp(1801): error C2094: label 'sekwencja1' was undefined

 

 

Opublikowano

To jak, można zrobić skok tego typu?

Na przerabianie kodu pójdzie dużo czasu, ja chcę to załatwić wątkiem...

 

PS. no dobra spróbowałem zrobić po prostu zwykłą funkcję (bez wątków), no ale wyskakuje ten sam błąd...

Opublikowano

a slyszales o czyms takim jak waitforsingleobject? robisz watek w mainie -> czekasz az watek sie ukonczy (chociaz tutaj uzycie watku jest glupie - wystarczy funkcja i dac w niej return po prostu) nie wiem po co tutaj goto wciskasz, inna rzecz ze goto... tak, goto, nie, nie uzywa sie tego

void foo()
{
	while(true)
	{
		Sleep(50);
		if(bar)
		{
			return;
		}
	}
}


int main()
{
	foo();
	//tutaj wyskoczy ci z funkcji
} 

­

Opublikowano

To co wrzuciłeś robi całkiem co innego, to jest jakiś taki stoper, który czeka na zdarzenie i dopiero później idzie dalej.

 

Mi chodziło o to, że program cały czas robi swoje bez zatrzymywania. Ale jeżeli zostanie wykryte zdarzenie (które jest niezależne od programu, czyli może się zdarzyć w każdym miejscu) to nastąpi skok w odpowiednie miejsce...

 

Problem rozwiązałem paroma flagami, ale musiałem się nieźle nagłowić, żeby je tam wcisnąć, bo już miałem ponad 2k linijek kodu.

 

A wracając do labeli, to wielka szkoda... Niby jest tak świetne udogodnienie, no ale niestety to działa tak, że żal mi dupę ściska.

Teraz już wiem, dlaczego wszyscy mówią, żeby tego nie używać...

 

PS. 

 

 

czekasz az watek sie ukonczy

To jest po prostu thread join, ale tak jak napisałem. Tu chodzi o całkiem co innego.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...