Go Down

Topic: Re: was macht return? (Read 128 times) previous topic - next topic

Katsumoto

Nein, bin auch Anfänger und habe nichts verstanden...
WAS macht der Befehl "return"
Hier ein code-beispiel:

Code: [Select]

 
long microsecondsToCentimeters(long microseconds)
 
{
 
 
 return microseconds / 29 / 2;
 


Hier gehts um den Ultraschallsensor, wie ein Profi leicht erkennen kann, aber was genau tut  "RETURN microseconds"  in diesem Fall???

Doc_Arduino

#1
Apr 19, 2019, 06:40 pm Last Edit: Apr 19, 2019, 06:43 pm by Doc_Arduino
Hallo,


Quote
Hier gehts um den Ultraschallsensor, wie ein Profi leicht erkennen kann ...
Woran soll man das erkennen? Ist für die Frage auch völlig belanglos.

return alleine weißt den Programmablauf an, zum Aufrufer der Funktion umgehend zurückzukehren. Wirkt wie ein Abbruch.

In deinem Fall wird eine Funktion mit Parameterübergabe und einem long Rückgabewert aufgerufen.
Der Übergabeparameter ist vom Datentyp long und hat die lokale Variable microseconds
Diese wird durch 29 und durch 2 geteilt und das Ergebnis zum Aufrufer zurückgegeben. Der Rückgabewert ist ebenfalls vom Datentyp long.

Code: [Select]
long microsecondsToCentimeters (long microseconds)
{
   return microseconds / 29 / 2;
}


Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

uwefed

Hier gehts um den Ultraschallsensor, wie ein Profi leicht erkennen kann, aber was genau tut  "RETURN microseconds"  in diesem Fall???
Einem kommt der Verdacht wegen der 58 oder 29*2 da dies die Zahl um von µs auf cm umzurechnen.
Grüße Uwe

postmaster-ino

Hi

Die Funktion hat einen Rückgabewert - das 'long' vor dem Funktionsnamen ist der Typ der Rückgabe.
Danach kommt der Funktionsname - hier 'microsecondsToCentimeters' - der Funktion werden also µs übergeben, wie man in der Klammer auch sehen kann - zuerst der Typ - ebenfalls wieder long - und dann der Name der lokalen Variable - microseconds.
Um von µs auf cm zu kommen, muß die Zeit durch 58 geteilt werden (oder durch 29 durch 2).
Da Das keine größeren Rechenschritte benötigt, ist diese Rechnung direkt am return angehangen - dort wird also erst der Übergabewert durch 29 durch 2 geteilt und dann zurück gegeben.

Und, wie schon geschrieben, beendet return die Funktion - Zeilen Die hinter diesem return stehen, werden nicht abgearbeitet, da das return halt vorher schon die Funktion beendet hat.

Wer schon Mal mit dem HC-SR04 gespielt hat, hat wohl auch die /29/2 gesehen - viel Mehr Wiedererkennungswert liegt Da aber nicht drin.

MfG
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

Go Up