[LUGOS-PROG] checksum

Blaz Antonic blaz.antonic at havn.com
Sat Jun 29 23:05:13 CEST 2002


Hello,

> > > sum+=*(var_abc+i);
> >
> > Mogoce bos rabil se konverzijo tipa pointerja:
> > sum+=(int*) *(var_abc+i);
>
> Upst. Najbz bo bolje
> sum+=((int*) *var_abc)+i;

Ce naredim 

sum += (unsigned short *) var_abc + i; 

se mi sestevajo skupaj pointerji (to povzroci tisti asterik v oklepaju).
Jaz bi rad, da se skupaj sestevajo vrednosti tipa unsigned short kamor
kazejo tisti pointerji.

Npr. ce var_abc kaze na lokacijo v pomnilniku 0xF00 se mi sestevajo
skupaj 0xF00 + 0xF02 + 0xF04 itd. Morale bi se pa sestavati vrednost iz
naslova 0xF00 + vrednost iz naslova 0xF02 + vrednost iz naslova 0xF04,
itd.

Po nekaj eksperimentiranja (BTW, a kdo ve zaradi katerega debila je cel
.dsl.siol.net domain banned na #linux ?) sem preprican, da mora biti
spredaj samo (unsigned short), brez cesarkoli drugega, drugace bom
sesteval pointerje. Kaj pride zatem je pa mystery :-))

Zdi se mi, da se tvoja vrstica sploh ne bi prevedla.

BTW, ce je ze originalna struktura primernega tipa (unsigned short *
var_abc[7]) se vse prevede pravilno. K&R compiler se tukaj ne bi
pritozeval (IMO), genijalni gcc pa se :( A se da gccju dopovedat naj ne
sitnari in naj lepo sesteje tiste stvari skupaj, brez da moram jaz
uvajat se eno strukturo (ali pa vsaj pointer, ki kaze na isto mesto) ?

Blaz Antonic




More information about the lugos-prog mailing list