Domanda sull'istruzione switch-case [chiusa]

-2

Cosa succede, e il codice funziona correttamente se scriviamo una struttura di switch-case come questa, perché non è buono scrivere codice come questo? Sto effettuando il porting di alcuni firmware e l'istruzione switch-case è stata interrotta come questa, e quando rimuovo il codice tra le istruzioni switch-case, inizia a funzionare normalmente.

switch(state){
    case 0:
    break;
    case 1:
    break;
    case 2:
    break;
    case 3:
    break;
}

//here we interrupt switch-case and do a some other code


// after that code we continue with same switch

switch(state){
    case 4:
    break;
    case 5:
    break;
    case 6:
    break;
    case 7:
    break;
}
    
posta Lazar 29.04.2015 - 12:07
fonte

1 risposta

3

Sembra che il codice al centro stia cambiando il valore della variabile stato , dando all'utente un'esecuzione diversa nella seconda istruzione switch. Presumibilmente, questo è importante; crea una nuova variabile, memorizza il valore di stato e usalo nella seconda istruzione switch:

int savedState = state ; 
switch( savedState ) { ... } // 0, 1, 2, 3 
// Other Code 
switch( savedState ) { ... } // Everything else 
    
risposta data 29.04.2015 - 13:13
fonte

Leggi altre domande sui tag