ich hab gerade angefangen ANSI C zu programmieren. Vielleicht ne simple Frage, aber ist es in C möglich das eine Funktion mit "return" mehrere Werte zurückliefert?
return liefert den Datentyp der Funktion zurück. Wenn du mehrer Werte zurückgeben willst, dann kannst du einen Pointer auf ein Array zurückgeben oder ein struct machen, und die Funktion liefert ein struct, oder so. Aber int foo() { return 1; return 2;} liefert immer nur 1. 1 und 2 gleichzeitg wird nie zurückgegeben. -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth!
void tolle_function(char** x, int*y) { staticchar* h = "Hallo"; *x = h; *y = strlen(h); } /* natürlich kann man hier auch was anderes als void zurückgeben, aber eben nur eine Sache auf einmal */
-- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21)
Hab jetzt versucht ein Programm zu schreiben das structs zurückliefert. Allerdings bringt mir der Compiler Fehlermeldungen aus denen ich nicht schlau werde. Vielleicht hat jemand einen Tip was ich vergessen hab!
Du deklarierst die Funktion spilt genauso wie eine struct, und ( ist nicht in der Deklaration einer Strukt erlaubt, deshalb der parse error before char.
-- mist: @beefy war wohl schneller -- -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth!Dieser Post wurde am 30.10.2003 um 20:52 Uhr von Pablo Yanez Trujillo editiert.
// Ausmaskieren byte_daten.Slave_Adresse = ((0x70) & Byte_eins); byte_daten.Slave_Adresse = (Slave_Adresse >> 4); // split.c:16: error: `Slave_Adresse' undeclared (first use in this function) // split.c:16: error: (Each undeclared identifier is reported only once // split.c:16: error: for each function it appears in.)
byte_daten.R_W = ((0x08) & Byte_eins); byte_daten.R_W = (R_W >> 3); // split.c:22: error: `R_W' undeclared (first use in this function)
// Ausmaskieren byte_daten.Slave_Adresse = ((0x70) & Byte_eins); byte_daten.Slave_Adresse = ([b]byte_daten.[/b]Slave_Adresse >> 4); // split.c:16: error: `Slave_Adresse' undeclared (first use in this function) // split.c:16: error: (Each undeclared identifier is reported only once // split.c:16: error: for each function it appears in.)
byte_daten.R_W = ((0x08) & Byte_eins); byte_daten.R_W = ([b]byte_daten.[/b]R_W >> 3); // split.c:22: error: `R_W' undeclared (first use in this function)