Hi,
was eigenartiges:
#define SCAN_LIM_HI (unsigned long long)0x466666660000
volatile unsigned long long dds_lo_tw;
void ebbes(void) {
if(dds_lo_tw>SCAN_LIM_HI) pcWriteChar('#');
}
Komischerweise ist das 'if' hier immer true, egal ob dds_lo_tw kleiner
oder grösser als SCAN_LIM_HI ist. Gleiches Ergebnis mit
if(dds_lo_tw<SCAN_LIM_LO) und #define SCAN_LIM_LO (unsigned long
long)0x08637BD0.
Laut
http://mspgcc.sourceforge.net/doc_memapi.html
ist long long unterstützt und 8 bytes lang.
Ist das dann ein Fehler in mspgcc dass der Vergleich nicht richtig
funzt?
danke,
- jfw
Der typecast auf eine Konstante, die bereits zu kurz ist, ist witzlos. Hänge stattdessen ein LL (oder ULL) an die Konstante an. Bekommst Du denn dafür keine Compilerwarnung? Würde mich wundern. Oder hast Du kein -W -Wall in der Kommandozeile?
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.