Użycie goto z funkcji do maina

0

Witam, zapisze tylko schematycznie o mi chodzi
void funkcja()

void funkcja()
{
    // ..
    if()
    goto tu;
}
int main()
{
    // ...    
    funkcja();
    for()
    tu:
    // ...
}

Kompilator wywala blad bo funkcja() nie zna "koniec", pytanie wiec jak moge to zrobic aby zadziałało. Nie chce wklejac calego kodu bo zajmuje 200 linijek. Break mnie nie urządza, ponieważ chce "ominac" tego for'a.

2

Nie możesz wykonywać goto między różnymi funkcjami (co, jeśli tamta funkcja przyjmowałaby parametry - jak miałoby to działać?).

Najlepiej w ogóle zapomnij o istnieniu goto i przepisz ten kod tak, abyś z tej konstrukcji nie musiał korzystać.

1

Tu masz napisane jak to zrobić:
http://stackoverflow.com/a/21371409

2

@Arius rozbij to po ludzku na sensowne bloki kodu bo to co próbujesz zrobić jest bardzo złe z wielu powodów. Czemu nie zrobisz np.

boolean funkcja()
{
    // ..
    if()
      return true;
    return false;
}
int main()
{
    // ...    
    if (!funkcja()){
    for()
    }
    // ...
}

i voila, nie mamy juz wycieku pamieci za każdym wywołanie funkcji, nie mamy przepływu trudnego do ogarniecia. Nie mamy goto.

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