checksum

Blaz Antonic blaz.antonic at havn.com
Sat Jun 29 16:03:54 CEST 2002


Hello,

Recimo da imam eno strukturo 

struct abc = {
	unsigned long var1;
	unsigned short var2;
	unsigned char var3[8];
} * var_abc;

ki okupira 4 + 2 + 8 bajtov. Ce gledam nanjo drugace je na mestu, kamor
kaze var_abc 7 zaporednih 16-bitnih (short) vrednosti. Recimo, da bi jih
rad sestel skupaj (v checksum). Kako se tega lotim ?

int i;
unsigned short sum;

for (i = 0; i < 7; i++)
	sum += (unsigned short) var_abc[i];

ni pravi nacin, gcc se pritozuje in izpljune error. Alternatiuve, ki sem
jih probal (in ne delajo) so

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

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

	sum += (unsigned short) var_abc + i;

Vsaj zdi se mi, da sem te kombinacije probal, gcc pa napise nekaj
drugega (ampak se zmeraj ne dela). 

Probal sem tudi tako, da bi

unsigned short * var_def[7];

kazal na isto mesto kot var_abc, potem pa bi sesteval skupaj var_def[i].
Afaik tudi to ne dela.

Blaz Antonic




More information about the lugos-prog mailing list