Pb sur switch case

Pb sur switch case - C - Programmation

Marsh Posté le 16-10-2006 à 09:42:15    

Bonjour,
Voici un bout de code:

Code :
  1. OPTION_NEGOCIEE (mess_nego1,socket1)
  2. {
  3. unsigned char *mess_nego11,*rep_mess_nego11;
  4. /*int socket1;*/
  5. mess_nego11=mess_nego1;
  6. printf("\nN° d'option %d  %d %d valeur de la socket %d",*mess_nego11,*(mess_nego11+1),*(mess_nego11+2),socket1);
  7. switch(*(mess_nego11+1))
  8. {
  9. case 250: printf("\nSB %d demande de sous negociation",*(mess_nego11+1));
  10. case 251: printf("\nWILL %d demande de negociation",*(mess_nego11+1));
  11. case 252: printf("\nWONT %d refus de negociation",*(mess_nego11+1));
  12. case 253: printf("\nDO %d demande de negociation",*(mess_nego11+1));
  13. case 254: printf("\nDONT %d refus de negociation",*(mess_nego11+1));
  14. /*default: printf("\nErreur de traitement sur neociation N° option %d",*(mess_nego11+1));*/
  15. }


et voici le resultat
 
N° d'option 255  251 3 valeur de la socket 3
WILL 251 demande de negociation
WONT 251 refus de negociation
DO 251 demande de negociation
DONT 251 refus de negociation
Pour une valeur de 251 la routine se comporte comme ci les quatre branchements etaient valables.
 
N° d'option 255  253 24 valeur de la socket 3
DO 253 demande de negociation
DONT 253 refus de negociation
la valeur ici est de 253 et les branchements pour 253 et 254 sont valides.
Pourquoi?

Reply

Marsh Posté le 16-10-2006 à 09:42:15   

Reply

Marsh Posté le 16-10-2006 à 09:52:11    

il faut mettre des 'break' à la fin de chaque 'case'


---------------
TriScale innov
Reply

Marsh Posté le 16-10-2006 à 10:00:25    

Typer les paramètres dans ton prototype de fonction ça peut être sympa également.


---------------
Töp of the plöp
Reply

Marsh Posté le 16-10-2006 à 10:41:31    

Merci
J'avais oublie le break.
Mon compilo est anvien et ne supporte pas le typage des variables dans le prototype des fonctions (Unix Hp B.11.11).
Merci

Reply

Marsh Posté le 16-10-2006 à 10:55:15    

yartempion a écrit :

Merci
J'avais oublie le break.
Mon compilo est anvien et ne supporte pas le typage des variables dans le prototype des fonctions (Unix Hp B.11.11).
Merci


 
antédiluvien ?


---------------
Töp of the plöp
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed