hab ich.
j wird in der oberschleife verwendet. komischerweise gabs keine fehlermeldung oder warnung.
hallo und gesundes neues!!
cih habe folgendes problem: ich möchte aus zwei bytes (addr.low und addr.med) eine short-variable (adresse, addr.low niederwetige byte und addr.med höherwertige byte) machen.
mein code:
void exram_write(threebyte *addr,BYTE dat) // nur für Debugging
{
short a,b,j;
a=( short)addr->low;
b=( short)addr->med;
j = ((b << 8 ) + a);
ErsatzXRAM.buf[j]=dat;
} // Ende Debugging
also beim debuggen ist a z.B. 3 und b null. jetzt muss doch j auch 3 sein oder? also bei mir ist es immer null. ist denn mei quellcode richtig
hab ich.
j wird in der oberschleife verwendet. komischerweise gabs keine fehlermeldung oder warnung.
am besten geht sowas über ein Komposit:
Code:typedef union { unsigned char byte[2]; unsigned short word; struct { unsigned char low; unsigned char high; }; } data_t; data_t data; ... data.word = 1234; data.b[0] = ...; //low-Teil x = data.low; //low-Teil
Disclaimer: none. Sue me.
Lesezeichen