INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Funktion/Methode mit mehr als einem Ausgangswert
19.10.2015, 16:24
Beitrag #9
RE: Funktion/Methode mit mehr als einem Ausgangswert
Hi,
ja (bis auf die [] beim Funktionsaufruf) , aber ich persönlich würde das niemals so machen (ich weiß, dass es einige ANSI-C-Funktionen so machen, da finde ich es aber auch schlecht). In Deinem Beispielprogramm wird nicht klar, warum man das überhaupt mit dem Pointer macht. Ich würde es so machen:
Code:
void myfunction(float arr[]) {
   arr[0] = 5;
   arr[1] = 3.1415;
    // etc
}

void loop() {
    float myarray[10];
   //...
  myfunction(myarray);
   //...  
}
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.10.2015, 16:51 (Dieser Beitrag wurde zuletzt bearbeitet: 19.10.2015 16:53 von HaWe.)
Beitrag #10
RE: Funktion/Methode mit mehr als einem Ausgangswert
ich habe das nur gemacht mit dem

fbuf = myfunction(myarray); // berichtigt

weil der TO einen Array als Funktions-Rückgabewert wollte, und so bekommt er ihn! 8-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.10.2015, 08:55
Beitrag #11
RE: Funktion/Methode mit mehr als einem Ausgangswert
Hallo ihr beiden!

Erst einmal ein großes Dankeschön an Euch für Eure Unterstützung und Eure Bereitschaft Euer Wissen zu teilen!

Ich habe mich an der struct Methode versucht. Ergebnis:

Fehlermeldung nach dem Übersetzen:
"mulitVar was not declared in this scope"
"expected ';' before ArrayValue"

Mein Code:
Code:
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  
}

float InputValue = 2.0;

typdef struct {
    float aFloat;
    float bfloat;
    float cfloat;
}multiVar;

multiVar myFunc(float inValue) {
    multiVar retVal;
    retVal.aFloat = inValue * 2.0;
    retVal.bfloat = inValue * 3.0;
    retVal.cfloat = inValue * 4.0;
    return retVal;
};

void loop() {
  // put your main code here, to run repeatedly:
   multiVar ArrayValue = myFunc(InputValue);
    
   Serial.println(ArrayValue.afloat);
   Serial.println(ArrayValue.bfloat);
   Serial.println(ArrayValue.cfloat);
}
[/code]

Was mache ich hier falsch?

Gruß
Marduino_UNO
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.10.2015, 08:59
Beitrag #12
RE: Funktion/Methode mit mehr als einem Ausgangswert
Hi,
Code:
}multiVar;
Mach da mal ein Leerzeichen zwischen } und multiVar.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.10.2015, 09:38
Beitrag #13
RE: Funktion/Methode mit mehr als einem Ausgangswert
Das hat leider auch nicht geholfen.

Andere Fehlermeldung:
"multiVar does not name a typ"

Gruß
Marduino_UNO
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.10.2015, 09:45
Beitrag #14
RE: Funktion/Methode mit mehr als einem Ausgangswert
Hi,
könntest Du nochmal Dein komplettes Coding (per copy&paste) hier reinkopieren, sowie alle Fehlermeldungen inklusive Zeilenangabe?
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.10.2015, 09:47
Beitrag #15
RE: Funktion/Methode mit mehr als einem Ausgangswert
Erster Fehler:
typedef anstatt typdef

Fehlermeldung: "multiVar does not name a typ" bleibt jedoch bestehen

Gruß
Marduino_UNO
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.10.2015, 09:48
Beitrag #16
RE: Funktion/Methode mit mehr als einem Ausgangswert
...siehe meinen letzten Beitrag

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Funktionen mit der millis() Funktion Zis 3 208 16.05.2018 21:50
Letzter Beitrag: Tommy56
  Map funktion bei Fernsteuerung marsmännchen 7 358 23.04.2018 12:42
Letzter Beitrag: hotsystems
  Zwei identische I2C sensoren an einem Bus Karli 19 874 02.04.2018 22:13
Letzter Beitrag: Harry
  Millis verzögern Funktion? malsehen 14 678 29.03.2018 21:47
Letzter Beitrag: hotsystems
  328P geht nicht mehr [gelöst] Harry 37 2.681 04.03.2018 19:57
Letzter Beitrag: Harry
  "undefined reference to Class::Methode" obwohl definiert da_user 9 392 21.02.2018 23:33
Letzter Beitrag: Tommy56
  byte´s zu einem String zusammenfassen ? Franz54 18 1.190 31.01.2018 10:10
Letzter Beitrag: MicroBahner
  Mehrere Ausgänge mit einem Befehl auf High oder Low setzen dahans 1 602 10.01.2018 12:48
Letzter Beitrag: Tommy56
Bug I2C Displays wollen nicht mehr Der Ausserirdische 12 826 30.12.2017 17:11
Letzter Beitrag: hotsystems
  Eine Funktion verlassen Jan5663 8 872 18.12.2017 13:49
Letzter Beitrag: Chopp

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste