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
  aufeinander Aufbauende Lichtaktion mit einem Taster Colby 9 310 17.12.2016 13:30
Letzter Beitrag: Colby
  Bridge und TemperaturWebPanel in einem Skript j_ard 4 253 17.12.2016 11:06
Letzter Beitrag: j_ard
  A4988 Driver mit einem Nema 17 Hangloose 3 155 04.09.2016 21:49
Letzter Beitrag: Hangloose
  Arduino lässt sich nicht mehr beschreiben Maxi290997 15 1.115 07.08.2016 11:40
Letzter Beitrag: Maxi290997
  Funktion mit Parameterübergabe - u8g torsten_156 8 437 22.06.2016 18:53
Letzter Beitrag: Pit
  Kann ich mit einem Arduino ein Gyro für Adroid Simulieren? Demitos 0 442 16.03.2016 18:33
Letzter Beitrag: Demitos
  Ansteuerung von einem Relais mit einem PS2 Controller minigarage 2 362 11.03.2016 15:31
Letzter Beitrag: minigarage
  Funktion in Loop einmalig ausführen Haustechno 4 700 09.03.2016 22:43
Letzter Beitrag: Haustechno
  Bei Tastendruck ein Ausgang mehr dazu.... hannes77 2 1.025 07.03.2016 20:48
Letzter Beitrag: hannes77
  HC-05 Modul auf Funktion prüfen. arduinofan 2 385 03.02.2016 19:18
Letzter Beitrag: arduinofan

Gehe zu:


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