Verständnissproblem Rückgabewert

Hallo,

habe grade ein kleines Verständnissproblem. Ich rufe eine Funktion auf:

readvalues();

nun Rechne ich dort meine Values aus und möchte den Wert wieder zurück geben.

return value;

Wie kann ich in der readvalues(); nun mit der zurückgegebenen value weiter arbeiten?

Ich verstehe die Frage nicht!

Denn:
Wenn die Funktion beendet wurde, kannst du nicht in der Funktion weiterarbeiten.
Egal mit welchen Werten.

in dem du den zurückgegeben Wert in einer Variable speicherst und mit dieser Variable weitermachst.

mach einen kleinen kompilierbaren Sketch der dein Problem zeigt, dann kann man dir besser helfen.

Hallo
werfe mal einen Blick hier hinein:

Hat sich schon erledigt. Habe bisher noch nicht wirklich kapiert wozu dieser Return eigentlich da ist. Übergebe den Wert nun über eine globale Variable.

Womit du dann einen der schlechtesten Wege gefunden hast, mit Abhängigkeiten umzugehen.

Ich rate dir zu einem guten C++ Buch.

Jede Funktion kann viele Eingabewerte haben aber nur einen Rückgabewert. Dies Eingabe bzw Rückgabewerte werden bei der Funktionsdefinition definiert.
zB

int (meineFunktion (int a, int b)
{
return( a+b);
}

Diese Funktion hat 2 Eingabewerte und gibt 1 zurück. a und b sind lokale Variablen die nur innerhalb der Funktion existieren.

Aufgerufen wird die Funktion:
Summe = meineFunktion ( 10 , 2);

Im Arduino-Bereich werden Zeiger kaum verwendet obwohl Zeiger das Standartmittel bzw der gute Ton sind um Daten an Funktionen zu übergeben (und eben keine Globalen Variablen). Zeiger sind eigentlich die "Speicheradresse" der Variable obwohl der Wert des Zeigers an sich nichts signifikantes aussagt.

Beim guten Ton in C übergibt man an die Funktion die Zeiger der zu verwendenden Variablen und die Funktion verändert die Werte der Variablen durch ihren Zeiger. Als Rückgabewert wird ein Statusinfo gegeben. "-1" zB bedeutet daß ein Fehler in der Ausführung der Funktion aufgetreten ist.

Achtung:
In C ist es möglich Funktionen mit gleichem Namen aber verschiedener Anzahl von Eingabewerten zu haben. Das sind dann 2 verschiedene Variablen und es wird immer die Ausgeführt die den übergebenen Wertenanzahl entspricht.
Du kennst das zB von optinalen Timeout- wert bei pulseIn() und ähnliches.

Grüße Uwe

Naja...
In C gibt es wenig Alternative zum Zeiger.

In Arduino verwenden wir eigentlich nur C++, dann sind Referenzen den Zeigern vorzuziehen, wenn irgend möglich

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.