Salut,
J'apprend a programmer sur les avr (atmega8) et, j'ai rencontré un probleme avec le code suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
PORTC = sequence[pos];
		if(sens==HORAIRE){ 
               /*ligne qui pause problem : */
			((++pos)%4) ;
j'ai à la compilation l'avertissement suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 warning: value computed is not used
je l'ai dabord ignoré, mais ça a fait n'importe quoi, alors je l'ai ensuite remplacé par :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
++pos;
if (pos==4) pos=0;
Et sa marche tres bien .

Du coup j'ai été pris d'un doute et j'ai essayer cette instruction dans un programme normal :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
int i, pos=0; 
	for (i=0; i<10; i++)
		printf("%i\n",((++pos)%4) );
ce qui ne pause aucun probleme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
1
2
3
0
1
2
3
0
1
2
Quelqu'un peut il m'expliquer pourquoi cette instruction ne marche pas sur l'atmega?
et que se passe-t-il quand je depasse la dimension du tableau ?
merci bien !