Użycie goto z funkcji do maina

Użycie goto z funkcji do maina
AR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 15
0

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

Kopiuj
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.

  • Rejestracja: dni
  • Ostatnio: dni
Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
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ć.

vpiotr
  • Rejestracja: dni
  • Ostatnio: dni
1

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

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
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.

Kopiuj
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.