Witam stanołem własnie przed takim problemem jak zrobić żeby w po spełnieniu warunku
if(...) można by było błyskawicznie zakończyć funkcje bez wykonywania reszty programu?
Próbowałem tak :
funkcja(...){
...
...
if(...<...){break;}
...
...
...}
i nic z tego.
Próbowałem też
funkcja(...){
...
...
if(...<...){goto przeskok;}
...
...
przeskok;
}
ale niestety z jakiś nie znanych mi przyczyn wywala że przeskok nie może byc ostatnią instrukcją w funkcji, a ja potrzebuje żeby właśnie tak było żeby ominąć wszystko nawet "return".
Dziękuje za wszelkie sugestje?
Zakończyć funkcje przed czasem
dla funkcji nie zwracającej wartości:
dla funkci zwracającej wartość, niech będzie że unsigned char
a ponieważ to funkcja, następuje wtedy zwolnienie stosu,
ewentualnie przekazanie wartości wyjściowych do kodu nadrzędnego...etc
reasumując - return - tego się nie da ominąć...
pa,
tasza
Kod: Zaznacz cały
void foo () {
// ....
if ( warunek ) {
return;
}
// ....
}
Kod: Zaznacz cały
unsigned char foo2 () {
//.........
if ( warunek ) {
return ( 0xAA );
}
//.........
return ( 0xBB );
}
to "return" to jest właśnie takie błyskawiczne zakończenie funkcji,nasiono pisze:tak było żeby ominąć wszystko nawet "return".
a ponieważ to funkcja, następuje wtedy zwolnienie stosu,
ewentualnie przekazanie wartości wyjściowych do kodu nadrzędnego...etc
reasumując - return - tego się nie da ominąć...
pa,
tasza