[LUGOS-PROG] checksum

Saso Zivanovic zivanovic at student.fmf.uni-lj.si
Sat Jun 29 16:27:41 CEST 2002


Dne sobota 29. junij 2002 23:05 je Blaz Antonic napisal(a):
> 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;
>
Ne smem kar nekaj na pamet pisat.
Manjka se * pred vsem skupaj:
sum += * ((unsigned short *) var_abc + i);

Pa se opozorilo: ce hoces delat checksum in imaš v svoji strukturi nize, ne 
pozabi postaviti *vseh* odvecnih znakov za koncem niza na 0, sicer checksum 
najbrz ne bo kaj prida...

LP,
Saso

P.S. Sicer pa sem ravno videl, da naju je Ales oba poducil. Hvala.


> 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