[C]Return. Een soort van labels

Pagina: 1
Acties:

  • Virgil
  • Registratie: November 2001
  • Laatst online: 21-08 19:36

Virgil

We're not alone

Topicstarter
Ik wil stukken code gebruiken om dingen aan te brengen en als het dan gelukt is naar een ander stuk overspringen.
in TiBasic (Ti83) had je een leuk tooltje om stukken als label te definieren en dan met goto er naar toe te springen.

Nu dacht ik in C leuk te improviseren met return.

Naja het werkt dus niet en even kort gezegd:
"Wat is er fout ?"

Ik heb al begrepen dat dit op een manier mogelijk is.
Alleen weet nog niet precies hoe.
(Gasten van QuakeForge snap ik niet helemaal :D)

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>

int char(void)
{

int dext1 = 10;
int str1 = 10;
int ment1 = 10;
if( str1 + dext1 + ment1 = 30 ); /*kijkt hij of het 30 is*/
{
    printf("You divided good.\n");
    return main; /*als het goed is dan gaat hij naar het volgende stuk*/
}
else
{
    printf("Try again\n");
    return char; /*als het fout is overnieuw.*/
}

int main(void)
{
printf("Whoei");
return 0;
}

[ Voor 4% gewijzigd door Virgil op 27-01-2003 18:14 ]

Ik was heel, heeeel vroeger SeRRveR


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
return retourneerd een waarde of een type. return is geen! jump! (hell goto bestaat gewoon nog in C) en kan ook zeker niet zo gebruik worden

return breekt dus de functie af en retourneerd de waarde (of void) die gegeven is in de variabele. Zo'n return type moet je ook propaganderen binnen je methode signature, je zit namelijk te werken in een taal die controleert op type safety

http://www.thocp.net/biog...to_considered_harmful.htm

[ Voor 59% gewijzigd door Glimi op 27-01-2003 18:18 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 12:26
Allereerst: goto is evil.

Ten tweede: het return statement zorgt ervoor dat je een functie een bepaalde waarde kunt laten teruggeven.

Ten derde: ik snap uw voorbeeld helemaal niet. Je maakt een functie met de naam 'char'. Dit zal al niet werken, aangezien char een reserved word is.

Verder roep je in je main die functie nergens aan, dus wat is het nut dan van die functie? Het is niet omdat die functie als eerste staat, dat die daarvoor ook als eerste wordt opgeroepen. De main functie is het entry point van uw applicatie.

Check eens volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>

void DeelGetal(float getal, float deler)
{
    float quotient = getal / deler;

    if( quotient * deler == getal )
    {
         printf("goed gedeeld");
    }
    else
    {
          printf("Niet goed gedeeld");
    }
}

int main
{

   DeelGetal (50, 3)
   return 0;
}


MIsschien is het beter dat je eens investeert in een boek over programmeren in C (of beter nog, C++)

[ Voor 6% gewijzigd door whoami op 27-01-2003 18:17 ]

https://fgheysels.github.io/


  • Virgil
  • Registratie: November 2001
  • Laatst online: 21-08 19:36

Virgil

We're not alone

Topicstarter
Ten tweede: het return statement zorgt ervoor dat je een functie een bepaalde waarde kunt laten teruggeven.:
Hmm. Okay.
Ten derde: ik snap uw voorbeeld helemaal niet. Je maakt een functie met de naam 'char'. Dit zal al niet werken, aangezien char een reserved word is.:
Ik lees hier emulov's C cursus (Uitgeprint en wel) en heb waarschijnlijk over het kopje reserved words heengelezen.
Verder roep je in je main die functie nergens aan, dus wat is het nut dan van die functie? Het is niet omdat die functie als eerste staat, dat die daarvoor ook als eerste wordt opgeroepen. De main functie is het entry point van uw applicatie.:
Dus dat is toch !!! verplicht.
Nouja. Ik ga hier emulov's c voor beginners nog verder doorworstelen. Kom er wel uit, hopelijk.

Kon alleen zo gauw niet vinden hoe te springen door code.

edit:

Tip: gebruik de quote knop als je een reactie op iemands bericht wilt zetten, of gebruik quote-tags.

[ Voor 11% gewijzigd door whoami op 27-01-2003 19:26 ]

Ik was heel, heeeel vroeger SeRRveR


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Je denkt nog BASIC. Stop te denken in goto en leer te denken in functies...

We adore chaos because we like to restore order - M.C. Escher


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

En als je nog 'n beetje kans wil in de IT-sector moet je in objecten denken :Y)

[ Voor 5% gewijzigd door kenneth op 27-01-2003 19:59 ]

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
whoami schreef op 27 January 2003 @ 18:16:
Verder roep je in je main die functie nergens aan, dus wat is het nut dan van die functie? Het is niet omdat die functie als eerste staat, dat die daarvoor ook als eerste wordt opgeroepen. De main functie is het entry point van uw applicatie.
(...)MIsschien is het beter dat je eens investeert in een boek over programmeren in C (of beter nog, C++)


Misschien heeft ie dit geprobeerd:

C++:
1
2
3
4
void main( void ) {

   int bla = char();
}


En is ie zich nu aan het afvragen waarom die functie niet aangeroepen wordt :P

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
Wat overigens wel kan, is het adres van een functie returnen (behalve van main, speciaal geval omdat main() alleen als eerste functie kan worden aangeroepen door OS).
Het adres van de functie krijg je net als alle andere adressen door een & voor de naam te zetten.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein

Pagina: 1