C++, funkcja zwracająca

0

Mam małe pytanie. Która z poniższych wersji jest "lepsza", tzn. którą się powinno używać?

int sprawdz_czy_strefa_wybicia(Environment *env)
{
	if(env->currentBall.pos.x>=39.0 && env->currentBall.pos.x<=50.0)
		return flaga_wysuniecia=1; 
}

czy

void sprawdz_czy_strefa_wybicia(Environment *env)
{
	if(env->currentBall.pos.x>=39.0 && env->currentBall.pos.x<=50.0)
		flaga_wysuniecia=1; 
}

Gdyż później chcę użyć coś np:

domyślnie flaga_max_wyjscia=0;
i po tej funkcji zmieni się w pewnym momencie ta flaga i chcę już użyć do czegoś innego.

	sprawdz_czy_strefa_max_wyjscia(env);
		if(flaga_max_wyjscia==1)
		{
			//jakis kod
		}

dodanie <code class="cpp"> - msm

0
if(checkFoo()){ /* ... */ }
0

Czyli rozumiem, że najlepiej to zrobić na true/false zamiast tak jak napisałem?

Więc zrobić tak:

flaga_wysuniecia=false; // domyslnie


bool sprawdz_czy_strefa_wybicia(Environment *env)
{
    if(env->currentBall.pos.x>=39.0 && env->currentBall.pos.x<=50.0)
        return flaga_wysuniecia=true;
}

I pozniej tylko na przyklad:

if(sprawdz_czy_strefa_max_wyjscia) // czyli true
	{
	// jakis kod
	}
else // czyli false
{
// jakis kod
}

dodanie <code class="cpp">, znowu - msm

?

2

No lepiej tylko, że zamiast

 
bool sprawdz_czy_strefa_wybicia(Environment *env)
{
    if(env->currentBall.pos.x>=39.0 && env->currentBall.pos.x<=50.0)
        return flaga_wysuniecia=true;
}

robisz

 
bool sprawdz_czy_strefa_wybicia(Environment *env)
{
    return env->currentBall.pos.x>=39.0 && env->currentBall.pos.x<=50.0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1