Edit: ik had hem al door na boudie z'n post, maar dekees heeft hem ook in 1x door...
Als eerste:
je mag:
c code:
for (i=0, tot = 0; i< 10;i++) tot += mydata[i];
doen: er zijn nu twee initializatie statements.
F***
Ik denk dat je hem gevonden hebt.
mogelijk als ik hem anders schrijf:
for (ch=0, int i=0; ....
dat het dan wel werkt. Maar wat de compiler nu interpreteert is:
unsigned char piet;
for (int i=0, klaas=0; .... ) klaas = ...
en ik maar de variabele piet bekijken en me afvragen waarom die geen waarde heeft gekregen.
ik bedoel dus "init_statement1 , init_statement2" als eerste stukkie voor de ; in de for lus, met "int i" als statement1 en "ch=0" als statement 2. Maar de compiler ziet "int i=0, ch=0" als de declaratie van twee int variabelen.
Als ik de statements omdraai dan vind ie me niet lief unexpected expression before int.
@dekees: Of ik nu de declaratie van "int i" of de initializatie van ch buiten de lus haal maakt niet zo veel uit.
Mijn voorkeur gaat uit naar code die "compact, maar niet /te/" is...
code:
unsigned char ch=0;
for (int i=0;i<8;i++) ...
edit: "typefout" in de laatste coderegel gefixed.