C++, funkcja zwracająca

Odpowiedz Nowy wątek
2015-01-11 00:30
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

edytowany 2x, ostatnio: msm, 2015-01-11 18:36

Pozostało 580 znaków

2015-01-11 00:34
0
if(checkFoo()){ /* ... */ }

Pozostało 580 znaków

2015-01-11 01:00
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

?

edytowany 2x, ostatnio: msm, 2015-01-11 18:37

Pozostało 580 znaków

2015-01-11 01:29
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;
}

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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