Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: if-Abfrage bei Datentyp long Kategorie: Programmierung (von André H. - 19.11.2004 11:51)
Als Antwort auf Re: if-Abfrage bei Datentyp long von Thomas - 12.11.2004 0:09
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0
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:
>
> long a; int i;
> for i=0..31 a = 1 shl i;

> 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.

>
> long a, eins; int i;
> eins = 1;
> for i=0..31 a = eins shl i;

> funktioniert dann. Obwohl der lvalue in beiden Fällen ein long ist.

Warum "obwohl" ? Eben gerade "weil" ... ! ;-)

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: