switch case Leeres Case



  • Hallo

    Bedeutet im folgenden Code, dass bei Case R1 autmatisch Case R1B gilt?

    Danke

    char Response_Length;
            Response_Length = 0;
    
    	switch (Response_Type){
    
    		case R1:
    		case R1B:
    			Response_Length = 1;
    			break;
            }
    


  • PlattitüdenAbonennt schrieb:

    Bedeutet im folgenden Code, dass bei Case R1 autmatisch Case R1B gilt?

    ja, und andersrum auch (wenn du keinen code dazwischen hast).
    🙂



  • Was und Wo meinst du mit dazwischen? 😉



  • PlattitüdenAbonennt schrieb:

    Was und Wo meinst du mit dazwischen? 😉

    so etwa:

    ...
       case A:
       x++;
       case B:
       x++;
       break;
    ...
    

    ^^ case A zählt x zweimal hoch, case B nur einmal.
    🙂



  • stimmt! jetzt kann ich mich erinnern. Das wurde am Anfang des Studiums mal erwähnt.

    Hab gleich noch ne Frage:

    Response_Length ist nun 1.

    Warum wird folgende Schleife dann mehrfach ausgeführt?

    for (i=Response_Length-1; i>=0; i--){
    
    		Response[i] = tmp;
    
    	/* This handles the trailing-byte requirement. */
    		tmp = SD_RECEIVE();
    	}
    

    könnte das etwas mit dem Dateityp zu tun haben, mit char?



  • hab den fehler gefunden: i war ein signed char und war somit bei i-- immer Null.

    alles klaro jetzt!

    update: neee... eigentlich ists ja humbug...bei Unsigned gehts ja nur bis 0 aber bei signed doch ins Negative.

    naja, mit integer klappt es jedenfalls.

    kann das trotzdem jemand erklären?



  • Hi,

    da ist jetz die Frage ob die Schleife mehrfach ausgefuehrt wird und nie endet oder iwann mal endet!?

    Wenn erstes wuerd ich behaupten das bei dir der default Typ(weiss ned wie des heisst :)) auf unsigned ist. Also wenn nicht explizit ein un-/signed angegeben wird. Dadurch wird aus i-1 (wenn i 0 ist) 255.

    Peace & Blessed Love C0de4Fun


Log in to reply