Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Thomas, > > > sieht das nicht so aus, als ob auch nur ein Wort auf dem Stack lag? > > Bestätigt. Siehe letztes Posting von mir gerade eben. > > > Leider nur über den Compiler, denn so gut macht er das nicht: > > <code> > > long a; int i; > > for i=0..31 a = 1 shl i;</code> > > das obere Wort von a bleibt immer Null. > > Na gut, das ist ein alter Hut. > Schließlich ist der Standard-Variabel-Typ Integer. (Klar: 16Bit-Controller) > Aber das Thema mit dem Schieben wurde schon vor längerem ausführlich behandelt. > Der Compiler macht eben keine Optimierungen, und liest somit auch nicht voraus. > Also alles Step by Step, oder eben singel-pass. > Somit muß man hier natürlich eine Long-Variable Schieben, wenn das Ergenis auch long sein soll. > Im ersten Bsp. ist "1" eine Integer-Konstante und wird eben auch als Integer behandelt. > > > <code> > > long a, eins; int i; > > eins = 1; > > for i=0..31 a = eins shl i;</code> > > funktioniert dann. Obwohl der lvalue in beiden Fällen ein long ist. > > Warum "obwohl" ? Eben gerade "weil" ... ! ;-) > > MfG André H.