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
Question Mehrere HX711 an einem Arduino Nano Lambacher 59 2.070 17.10.2017 09:34
Letzter Beitrag: Tommy56
  Servo mit einem Taster und 433mhz steuern Thor Wallhall 63 3.248 29.07.2017 11:02
Letzter Beitrag: Thor Wallhall
  switch case funktion ausser halb loop ??? huber5093 13 1.701 12.04.2017 15:26
Letzter Beitrag: Tommy56
  Probleme mit einem Sketch für einen LED Cube 5x5x5 Frank1234 5 554 13.03.2017 12:12
Letzter Beitrag: Tommy56
  Mehrere HX711 mit einem Arduino Uno be14b029 5 817 08.02.2017 18:09
Letzter Beitrag: Binatone
  8 Taster an einem Pin Kitt 9 932 04.02.2017 18:51
Letzter Beitrag: ardu_arne
  Code aus 1.6.9 geht mit 1.8.1 nicht mehr zu kompilieren DL1AKP 7 806 02.02.2017 12:16
Letzter Beitrag: Tommy56
  aufeinander Aufbauende Lichtaktion mit einem Taster Colby 9 881 17.12.2016 13:30
Letzter Beitrag: Colby
  Bridge und TemperaturWebPanel in einem Skript j_ard 4 733 17.12.2016 11:06
Letzter Beitrag: j_ard
  A4988 Driver mit einem Nema 17 Hangloose 3 975 04.09.2016 21:49
Letzter Beitrag: Hangloose

Gehe zu:


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