Funktion mit zwei Rückgabewerten
-
Hallo,
gibt es eine Möglichkeit das eine Funktion einen bool und einen char Wert
zurückgibt.
-
// Variante 1 struct Foo { bool bar1; char bar2; } struct Foo func( /* ... */) { /* ... */ } /* Variante 2 */ void func(bool * bar1, char * bar2, /* ... */) { /* ... */ *bar1 = something; *bar2 = something_else; }
mfg
-
whoooooooops
merk grad in c gibt es kein bool? Meinst du C++ dann hier:
/* Variante 3 */ void func(bool& bar1, char& bar2) { bar1 = something; bar2 = somtehing_else; }
Wobei Variante 1 + 2 auch noch geht.
Aufrufe sehen so aus
/* für Variante 1 */ struct Foo foo; foo = func( /* ... */ ); /* für Variante 2 */ bool bar1; char bar2; func(&bar1, &bar2, /* ... */ ); /* für Variante 3 */ bool bar1; char bar2; func(bar1, bar2, /* ... */ );
mfg
-
Ich meine natürlich bit und char.
Ich möchte keine Zeiger übergeben.
Aber ich denke mal, das es so nicht Funktioniert.
if(!read_uart()) //Hier auf das bit testen
{
Fehler;
}
else
{
Daten auswerten;
}
/////////////////////////////////////////////////////
bit char read_uart(void)
{
timer starten;
warten auf Empfang der RS232 Schnittstelle oder Timer abgelaufen.Timer abgelaufen dann bit = 0;
Daten emfpangen dann bit = 1 char = daten;
}
-
Wenn ich mich nicht irre, kann der Rückgabewert einer Funktion nur "EIN Einfacher Datentyp" sein.
Das bedeutet:
> kein Array
> kein StructureJedoch kann man das gewünschte Ergebnis mit Ein-/Ausgabeparamtern erzielen
(wurde schon gesagt)PS.: auch ein Pointer kann ein Rückgabewert sein!
-
Hallo,
du irrst:
chille07 schrieb:
Das bedeutet:
> kein Array
> kein Structureselbstverständlich darf eine Funktion u.a. auch ein struct zurückgeben.
MfG
-
Das glaube ich kaum.
in ein Structure kann man ja auch arrays und so weiter schreiben
sprich...typedef struct { int x[20]; int y[20]; }koor; koor lese() { ... } void main() { koor a; a=lese; }
Ich habs zwar nicht getestet, oba warum hättn mir sunst das mit die Ein-Ausgabeparameter gemacht, wenns einfacher geht?
-
chille07 schrieb:
Ich habs zwar nicht getestet, oba warum hättn mir sunst das mit die Ein-Ausgabeparameter gemacht, wenns einfacher geht?
Was sind Ein-Ausgabeparameter?
Meinst du In/Out Parameter? Die gibt es so in C nicht. Man hat nur Zeiger - ein Zeiger kann aber entweder In oder Out oder In/Out sein...Und warum sollte man verbieten structs zurück zu geben? Das verstehe ich nicht...
-
chille07 schrieb:
Das glaube ich kaum.
du sollst nicht glauben, sondern wissen, oder wenigstens ausprobieren, bevor diese Möglichkeit hier als Lösung überhaupt nicht angesprochen wird.
chille07 schrieb:
Ich habs zwar nicht getestet, oba warum hättn mir sunst das mit die Ein-Ausgabeparameter gemacht, wenns einfacher geht?
weil du (und auch andere vielleicht) offensichtlich nicht wußtest, daß man structs zurückgeben kann.
MfG
-
Wir, das heisst meine Klasse, haben 4 Stunden programmiern pro Woche, nächstes Schuljahr 10 Stunden.
Ich weiß eigendlich nicht was wir lernen C oder C++
zB.: Dateiname der Quellcodes: cpp
andererseits verwenden wir kein cout, cinIch glaube wir lernen eine Mischung aus beiden?
Mit ein/Ausgabeparametern meine ich:
void asdf(int *x,int *y,int *z)
{
}
Sprich, die Funktion kann die Variablen verändern und darauf zugreifen.