mikrocontroller.net

Forum: Compiler & IDEs Mehrere Werte aus Funktion zurückgeben


Autor: Thomas U. (morrie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
Ich sitze gerade vor meinem Programm und würde gerne aus einer Funktion 
mehrere Werte zurückgeben.
Im "normalen" C kann ich das so machen:

int TestFunktion (int &Zahl1, int &Zahl2)

Dann kann ich die Zahl1 und Zahl2 in der Funktion bearbeiten und 
zurückgeben. In GCC funktioniert das bei mir aber nicht. Geht das 
generell nicht, mache ich was falsch oder gibt es vielleicht einen 
anderen Weg mehrere Werte zurückzugeben?

sorry, wenn das hier schon öfter gefragt wurde, ich habe aber nichts 
dazu gefunden.

mfg

morrie

Autor: Christian (Guest) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du must einen zeiger auf den Wert/die variable übergeben,
also die Adresse, wo etwas steht.

(bei C++ ginge aus auch noch anders)

Die Funktion darf den Wert wie oben entgegennehmen,
aber nicht ändern - und genau das passiert ja nicht
mit der Adresse.

Autor: Robert S. (razer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>int TestFunktion (int &Zahl1, int &Zahl2)

Das ist kein C, sondern C++. In C macht man das mit Zeigern, Referenze 
gibt es nicht.

Funktion; int TestFunktion (int* Zahl1, int* Zahl2)

Arbeiten in Funktion:
int TestFunktion (int* Zahl1, int* Zahl2)
{
   *Zahl1 = 25;
   *Zahl2 = Zahl1  20;

   return *Zahl2 + 75;
}

Aufruf: TestFunktion(&var1, &var2);

Autor: Thomas U. (morrie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure schnellen Antworten,
Es hat funktioniert :-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.