[C] switch et do while imbriqués

switch et do while imbriqués [C] - C - Programmation

Marsh Posté le 02-08-2003 à 19:32:31    

vu dans le code de lame, un truc du genre :
 

Code :
  1. switch (i) {
  2.    case 1 : instruc();
  3.       do {
  4.    case 2 : instruc();
  5.    case 3 : instruc();
  6.       } while(test);
  7. }


 
un switch et un do while entrelacés. je comprends le sens, mais je trouve cette syntaxe étrange. c'est ANSI, une norme + récente (C99 par exemple) ou du bidouillage ?


Message édité par jesus_christ le 02-08-2003 à 19:51:13

---------------
Envie de backuper un DVD en DivX mais vous y connaissez rien ? essayez dvd-ripp : le site de Maxime
Reply

Marsh Posté le 02-08-2003 à 19:32:31   

Reply

Marsh Posté le 02-08-2003 à 19:36:21    

jesus_christ a écrit :

vu dans le code de lame, un truc du genre :
 

Code :
  1. switch (i) {
  2.    case 1 : instruc();
  3.       do {
  4.    case 2 : instruc();
  5.    case 3 : instruc();
  6. }
  7.    
  8.      } while(test);


 
un switch et un do while entrelacés. je comprends le sens, mais je trouve cette syntaxe étrange. c'est ANSI, une norme + récente (C99 par exemple) ou du bidouillage ?


 
Il est bizard ton code, on dirait que ça n'a ni queue ni tete

Reply

Marsh Posté le 02-08-2003 à 19:41:51    

samuelp a écrit :


 
Il est bizard ton code, on dirait que ça n'a ni queue ni tete

c'est ça le pb, c'est pas mon code c'est un bout de lame (le codeur mp3)
 
j'ai voulu le recompiler avec un comilo "exotique" et il ne reconnaissait pas ce bloc, il a bien raison, c'est n'importe quoi, reste que lame est sencé contenir du "bon" code, et que visual c++ lui compile bien.
 
le switch démarre, le do ensuite, entre deux case, le switch se ferme, et derrière le while. Je voudrais savoir si c'est ANSI ou C99 ce bloc, ou du pur délire.
 
je précise que i est un entier quelconque, instruc une fonction, test un booléen et qu'il n'y a pas de break dans le switch.


Message édité par jesus_christ le 02-08-2003 à 19:42:58

---------------
Envie de backuper un DVD en DivX mais vous y connaissez rien ? essayez dvd-ripp : le site de Maxime
Reply

Marsh Posté le 02-08-2003 à 19:44:41    

jesus_christ a écrit :

c'est ça le pb, c'est pas mon code c'est un bout de lame (le codeur mp3)
 
j'ai voulu le recompiler avec un comilo "exotique" et il ne reconnaissait pas ce bloc, il a bien raison, c'est n'importe quoi, reste que lame est sencé contenir du "bon" code, et que visual c++ lui compile bien.
 
le switch démarre, le do ensuite, entre deux case, le switch se ferme, et derrière le while. Je voudrais savoir si c'est ANSI ou C99 ce bloc, ou du pur délire.


En tout cas ce code ne provient pas d'un guru en C.
JE vois plutot ça

Code :
  1. switch (i) {
  2.   case 1 : instruc();
  3.      do {
  4.   case 2 : instruc();
  5.   case 3 : instruc();
  6. }while (test);
  7.    
  8.     }


 
 
Mais meme ça sert a rien sauf si i appartient ou change via une fonction thread, donc qui tourne en parallele du case

Reply

Marsh Posté le 02-08-2003 à 19:48:11    

samuelp a écrit :


En tout cas ce code ne provient pas d'un guru en C.
JE vois plutot ça

Code :
  1. switch (i) {
  2.   case 1 : instruc();
  3.      do {
  4.   case 2 : instruc();
  5.   case 3 : instruc();
  6. }while (test);
  7.    
  8.     }


 
 
Mais meme ça sert a rien sauf si i appartient ou change via une fonction thread, donc qui tourne en parallele du case

je vais vérifier, mais je crois bien que la fin du while était après le switch. Sinon, même ta solution, c'est standard comme bloc ?
 
edit : t'avais raison, mais je suis toujours perplexe :pt1cable:


Message édité par jesus_christ le 02-08-2003 à 19:52:01

---------------
Envie de backuper un DVD en DivX mais vous y connaissez rien ? essayez dvd-ripp : le site de Maxime
Reply

Sujets relatifs:

Leave a Replay

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