Hi, wieso baut mein gcc bei volgender anweisung mist: bufPoint++ |= ((PRG_RDB(&f6x8[*(++stringPoint)][z]))<<6); aber nicht bei folgender: x = *(++stringPoint); *bufPoint++ |= ((PRG_RDB(&f6x8[x][z]))<<6); Die muessten doch gleichertig sein oder? (alle datentypen sind unsigned char bzw. pointer darauf(bufPoint stringPoint)) Hat mich ne Menge Zeit gekostet bis ich darauf gekommen bin alle Anweisungen die nach diesem Schema aufgebaut waren in 2 zu splitten. Tobias
Hi einmal hast du bufPoint++ |=.... und einmal *bufPoint++ |=... Ersteres dürfte der Compiler garnicht compilieren da an bufPoint zweimal ein Wert zugewiesen wird. Matthias
Dazu würde ich grundsätzlich immer raten. Wenn eine Anweisung zu komplex ist, daß ich selber nicht mehr durchsehe, dann teile ich sie in 2 oder mehr Zeilen auf. Oft wird dadurch der erzeugte Code sogar kürzer und schneller. D.h. auch Compiler mögen keine zu komplexen Ausdrücke. Peter
Hi, das * ist wohl beim kopieren rausgerutscht. Aber ich werd mir jezt wohl angewoehnen muessen nicht zu komplexe ausdruecke zu bauen.
"Müssen" muß nur Compiler und zwar immer den richtigen Code draus machen, wenn der Ausdruck syntaktisch korrekt ist. Der einzige Grund, um mehr oder weniger komplexe Ausdrücke zu schreiben, ist allein, daß man den Code auch selber versteht und das auch noch nach Jahren, wenn man mal wieder einen Blick drauf wirft. Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.