Корпус переключателя в C - PullRequest
0 голосов
/ 22 января 2012

Может кто-нибудь помочь с нижеуказанным

#include <stdio.h>

main ()
{
    char receive_buff [] ={0x01,0x00,0x01,0x01,0x00,0x00};

    switch( receive_buff[0] ) 
    {
        case 0x00:
            {printf("\nswitch 00\n");}
        case 0x01:
            {printf("\nswitch 01\n");}
        case 0x02:
            {printf("\nswitch 02\n");}
        default :
            {printf("\nswitch default\n");}
    }
}

результат

 ./a.out 

switch 01
Ro
switch 02

switch default

Я не знаю, что здесь происходит.

Ответы [ 2 ]

6 голосов
/ 22 января 2012
switch( receive_buff[0] ) 
{
    case 0x00:
        {printf("\nswitch 00\n");}
    case 0x01:
        {printf("\nswitch 01\n");}
    case 0x02:
        {printf("\nswitch 02\n");}

    default :
        {printf("\nswitch defualt\n");}
}

Должно быть

switch( receive_buff[0] ) 
{
    case 0x00:
        {printf("\nswitch 00\n");}
        break;
    case 0x01:
        {printf("\nswitch 01\n");}
        break;
    case 0x02:
        {printf("\nswitch 02\n");}
        break;
    default :
        {printf("\nswitch defualt\n");}
        break;
}
5 голосов
/ 22 января 2012

Вам потребуется оператор break после каждого набора действий, иначе переключатель C не удастся.Смотри http://en.wikipedia.org/wiki/Switch_statement#C.2C_C.2B.2B.2C_D.2C_Java.2C_PHP.2C_ActionScript.2C_JavaScript

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...