Avatar billede koch Nybegynder
13. maj 2005 - 19:45 Der er 5 kommentarer og
1 løsning

Bruge værdier fra andre funktioner, return?

Hvis jeg har en funktion, felt_funktion, der ved hjælp af en case sætning sætter variablen int felt_vaerdi = etellerandettal og jeg så gerne vil bruge felt_vaerdi i en anden funktion, så skal jeg vel afslutte med return felt_vaerdi; for det første.

Hvordan gør jeg så i funktionen der skal bruge værdien, noget i retning af en af nedenstående forslag:

1) void funktion_navn(int felt_vaerdi){
  //er dette nok eller skal det være som i næste forslag?
  resten_af_funktion_navn
  }

2) void funktion_navn(int felt_vaerdi){
  // her gemmes variablen i beloeb
  beloeb = felt_funk();
  resten_af_funktionen
  }


Et spørgsmål til brug af return:
Hvis jeg kalder en funktion1, hvori en anden funktion2 kaldes og jeg i denne funktion2 benytter return, vil denne værdi som returneres så kun være tilgængelig i funktion1 eller vil jeg også kunne få adgang til denne værdi i en helt tredje funktion?
Avatar billede bertelbrander Novice
13. maj 2005 - 23:45 #1
Du kan gøre:
funktion_navn(felt_funk());

Eller:
int temp = felt_funk()
funktion_navn(temp);

Eller som din 2) de gør det samme, og er mest et spørgsmål om smag og behag.

Dit anden spørgsmål:
Hvis du fra funktione1 kalder funktion2 og denne returnerer en værdi til funktion1, vil andre funktioner ikke kunne se værdien, medmindre variablen er global, eller du returnerer den fra funktion1
Avatar billede koch Nybegynder
14. maj 2005 - 11:55 #2
Jeg har følgende i min main-funktion:

    drej_hjul();//returnerer felt_vaerdi
    runde();//skal tage felt_vaerdi ind



i drej_hjul funktionen afsluttes med:
    return felt_vaerdi;

i runde funktionen startes med:
    int beloeb = drej_hjul;
    void runde(beloeb)


I min .h fil som er inkluderet i starten af både runde(); og i drej_hjul(); er funktionerne defineret som

int drej_hjul(void);
void runde(int beloeb);

Når jeg kører det får jeg følgende fejl:

too few arguments to function 'runde' og når jeg dobbeltklikker på fejlen ender jeg i main-funktionen hvor funktionen kaldes. Hvad kan det være, værdierne skulle den da få?
Avatar billede bertelbrander Novice
14. maj 2005 - 12:43 #3
Det skal være:
int felt_vaerdi = drej_hjul();
runde(felt_vaerdi);

Jeg forstår ikke denne:
i runde funktionen startes med:
    int beloeb = drej_hjul;
    void runde(beloeb)

Problemet er denne:
    int beloeb = drej_hjul;

Koden bør være som ovenfor.
Avatar billede koch Nybegynder
14. maj 2005 - 13:08 #4
Mange tak for hjælpen. Læg lige et svar.
Avatar billede bertelbrander Novice
14. maj 2005 - 16:21 #5
Jeg samler ikke på point, læg selv et svar og accepter det.
Avatar billede koch Nybegynder
14. maj 2005 - 18:44 #6
Mange tak ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I går 17:10 Joomla artikler Af rmadsen80 i CMS-systemer
I går 16:54 Printervalg til kontor Af tumben i Printere
I går 15:08 Http client med X509Certificate2 Af joki i C#
I går 13:02 Hjemmenetværk Af Andfer i LAN/WAN
I går 11:17 Chrombook Af lurup i Andre styresystemer