Rückgabewert
-
Kann ich bei einer Funktion:
int bla() { return b; }
diesem b ein "DSIN | DCOS" zuordnen und dieses dann auch auswerten???
also wenn DSIN und DCOS z.Bsp irgentwelche Konstanten sind.
Wie werte ich dann den Rückgabewert aus?Danke!
cu para
-
Du meinst so ?
int bla() { return (DSIN | DCOS); }
Ich verstehe nicht was du mit auswerten meinst.
-
also das problem ist, dass ich solche werte habe:
#define WALL 100 #define WALL_LEFT 101 #define WALL_RIGHT 102 . . .
einen diese werte müsst ich zurückgeben
da aber jetzt z.B. WALL_RIGHT (rechte wand) auch ein WALL (wand) ist müsste ich beides zurückgeben, dass ich dann die rückgabe so auswerten kann, dass ich für alle rückgaben WALL was entscheide und auf die einzelnen "näheren" angaben nochmals eingehe.also wenn ich jetzt in der funktion schreibe return (WALL | WALL_LEFT),
dass ich dann die Rückgabe auswerten kann nach folgendem Schema:
wenn WALL
wenn WALL_LEFT
...wenn WALL_RIGHT
....
.mmh. ganzschön mies erklärt....aber ich hoffe es versteht mich jemand
danke!
cu para
-
Ich versteh dich
also, die defines macht man dann mit 2er Potenzen:
#define WALL 16 #define WALL_LEFT 32 #define WALL_RIGHT 64
beim return machst du dann, wie du es gesagt hast:
return (WALL|WALL_LEFT);
Das Auswerten geht dann am besten mit ner union + bitfeld:
struct a { unsigned int a:4; unsigned int wall:1; unsigned int wall_left:1; }; typedef union { struct a bits; unsigned int wert; }alpha; //.... { alpha b; //... b.wert=deineFunc(); // returns WALL, WALL_LEFT .... or an bitwise or of s.l. if(b.bits.wall==1) do_something();
Sind bestimmt nen haufen fehler drin. Hab schon lang nichts mehr mit c gamcht. Aber so sollte es gehn.
[ Dieser Beitrag wurde am 26.11.2002 um 21:08 Uhr von xroads42 editiert. ]