» »

C++ & goto funkcija

C++ & goto funkcija

djv ::

Zdravo!
Mene pa zanima naslednje. Mam pač neko funkcijo za imenom npr... void Prva(int x)
Potem pa imam še drugo funkcijo nrp. void Druga()
Zdaj pa bi jaz rad iz druge funkcije z stavkom "goto" skočil v določeno vrstico prve funkcije (void Prva(int x)).
Mam pa kodo npr:
void Prva (int x)
{
bla.......
bla.......
oznaka: //oznaka za goto stavek...sem naj bi mi skočilo iz druge funkcije
}

void Druga()
{
bla.......
bla.......
goto oznaka; //TU JE PROBLEM...
}
Zdaj pa me zanima, kaj moreš napisat, da bom lahko ta "goto" stavek uporabil iz ene v drugo funkcijo..gre takšna sintaksa, ki sem jo jaz napisal, velja samo v isti funkciji, ne pa tudi v drugi!!

HELP!


  • spremenilo: djv ()

DeViCeD ::

Pomoje to kr ne mores delat. Mogoce (nisem probal, ali pa je neumno ...)
void prva(int i){
if (!i){
// delaj kar hoces */
}
else { /* goto */
// delaj ...
}
}
druga {
//delaj nekaj
if (nekej) prva(1); /* goto */
}

Ce razumes kaj sem hotu napisat ... sam pomoje je to neumnost ... sploh goto v c-ju (ali c++) je neumnost ...

Lp,
Dejan
So, if I press C, E and G I play C?

djv ::

Vem, da "goto" v c++ ni dobro uporabljat....ampak jaz ne vidim druge rešitve kot "goto".:(
Torej, če kdo ve, kako uporabit goto v dveh različnih funkcijah....please help me...

wintermute ::

To kar hoces je nemogoce. Z goto se ne de skakati iz ene funkcije v drugo (vsaj v C/C++ ne).

Temu se rece napaka v nacrtovanju... Pac, vso stvar si ze od zacetka narobe zastavil. Svetujem ti, da vse skupaj se enkrat premislis. Ce bi problem konkretiziral, bi ti pri tem lazje pomagali.

Ena moznost je, da funkcijo "Prva" razdelis na dve funkciji. V smislu:

void Prva (int x)
{
bla.......
bla.......
Tretja();
}

void Druga()
{
bla.......
bla.......
Tretja();
}

djv ::

Hja...napaka v načrtovanju. Res je to...sicer pa sem zdaj uspel rešit ta prbelm, tako kot je napisano v zgornejm postu. Hja.....zgleda, da bom res moral ŠE bolj začet uporabljat papir in svinčnik....Sicer pa je faza načrtovanja tako ali tako najbolj tečna...a ne:D

NoUse4AName ::

nic se ne opravicuj za uporabo goto stavka, ker za nekatere stvari je sevedno uporaben in najboljsa resitev. Npr v DirectX SDKju uporabljajo tu pa tam goto stavke.

webblod ::

Tukaj bi bila še ena možnost... Funkciji, ki vsebuje LABEL (torej mesto, kamor naj skoči goto stavek), 'podturiš' še en vhodni parameter s privzeto vrednostjo npr 0, nato pa takoj na začetku preveriš ali je ta parameter nič ali ni in tako opredeliš mesto izvajanja funkcije... Nato pa iz druge funkcije pokličeš prvo, tako da temu dodatnemu parametru določiš vrednost različno od 0.

V bistvu ti torej funkcija deluje kot stikalo... Pa še GOTO stavku se izogneš...

LP & May the source be with you!
There must be a reason, why I'm so damn dissapointed on M$ Visual Basic
WEBblod.NET :: Slovenska programerska scena


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Analiza kode: goto rabimo po pameti

Oddelek: Novice / Znanost in tehnologija
2913794 (10354) one too many
»

križci krožci c # (strani: 1 2 )

Oddelek: Programiranje
5011870 (10529) Yacked2
»

Apple popravil varnostno površnost v iOS, Mac OS X še nezakrpan (strani: 1 2 )

Oddelek: Novice / Varnost
5025418 (19307) BigWhale
»

Vprašanji glede napak pri programiranu

Oddelek: Programiranje
171827 (1259) noraguta
»

[c++] goto,jump

Oddelek: Programiranje
181641 (1424) 64202

Več podobnih tem