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
20.10.2015, 09:52 (Dieser Beitrag wurde zuletzt bearbeitet: 20.10.2015 09:56 von Marduino_UNO.)
Beitrag #17
RE: Funktion/Methode mit mehr als einem Ausgangswert
Code:
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

}

float InputValue = 2.0;
    typedef 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);
}
Fehlermeldung:
Arduino: 1.7.6 (Windows 7), Platine: "Arduino Uno"

Methode_mehr_Rueckgabewerte.ino:3:1: error: 'multiVar' does not name a type

Fehler beim Kompilieren.

Weiß nicht wie ich die Zeilenangaben mit kopieren soll....
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.10.2015, 10:27
Beitrag #18
RE: Funktion/Methode mit mehr als einem Ausgangswert
Hi,
ich habe das ganze jetzt doch mal in eine Arduino IDE gepackt und selbst ausprobiert. Anscheinend hat der verwendete Compiler ein Problem mit de typedef, aber nur bei der Deklaration des Rückgabewerts einer Funktion. Folgendes Coding läuft bei mir ohne Fehler durch:
Code:
void setup() {
   // put your setup code here, to run once:
   Serial.begin(9600);

}

float InputValue = 2.0;

typedef struct multiVar {
     float aFloat;
     float bFloat;
     float cFloat;
} multiVar;


struct 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);
}

Die Änderungen sind:
1. Explizite Benennung des struct
2. Deklaration des Rückgabewerts von myFunc

Ich habe keine Ahnung, warum multiVar bei Variablendeklarationen/-definitionen als Typ erkannt wird, aber nicht bei Funktionsdeklarationen/-definitionen. Ich vermute da einen Bug.

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, 10:30
Beitrag #19
RE: Funktion/Methode mit mehr als einem Ausgangswert
Hi Thorsten,

super das klappt nun bei mir auch! Vielen Dank für Deine Mühe.

Gruß
Marduino_UNO
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  328P geht nicht mehr Harry 29 764 Heute 12:41
Letzter Beitrag: Harry
  "undefined reference to Class::Methode" obwohl definiert da_user 9 107 Gestern 23:33
Letzter Beitrag: Tommy56
  byte´s zu einem String zusammenfassen ? Franz54 18 830 31.01.2018 10:10
Letzter Beitrag: MicroBahner
  Mehrere Ausgänge mit einem Befehl auf High oder Low setzen dahans 1 346 10.01.2018 12:48
Letzter Beitrag: Tommy56
Bug I2C Displays wollen nicht mehr Der Ausserirdische 12 574 30.12.2017 17:11
Letzter Beitrag: hotsystems
  Eine Funktion verlassen Jan5663 8 551 18.12.2017 13:49
Letzter Beitrag: Chopp
  RC Anwendung mit 3 Empfängereingangen und einem MPU6050 Thorsten_S 19 987 10.12.2017 19:59
Letzter Beitrag: Tommy56
Question Mehrere HX711 an einem Arduino Nano Lambacher 59 3.481 17.10.2017 09:34
Letzter Beitrag: Tommy56
  Servo mit einem Taster und 433mhz steuern Thor Wallhall 63 4.432 29.07.2017 11:02
Letzter Beitrag: Thor Wallhall
  switch case funktion ausser halb loop ??? huber5093 13 2.135 12.04.2017 15:26
Letzter Beitrag: Tommy56

Gehe zu:


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