Подскажите по switch

Stranger_812
Offline
Зарегистрирован: 05.08.2017

Подскажите, каким образом можно реализовать такую конструкцию

 switch( some.value )
      {
      case 0x*8C:                 
        // код
        break;
где * -любой символ, т.е при 0xA8C и 0xB8C будет выполнятся один код?
qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Stranger_812

switch ( some.value ) {
case 0x*8C:   //<-- здесь может быть только константа
  // код
  break;
}

//так что так и только так
if (some.value&0xff==0x8C)  // код

ПС: Это не прихоть, а стандарты Си

Stranger_812
Offline
Зарегистрирован: 05.08.2017

Почему-то не работает.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

У меня видишь ли телепатические способности слабые. И я не могу видеть ваши мысли, а так же скетч который у вас не работает.  Может вы напряжетесь и телепатически прочитаете у меня правильный ответ.

if (some.value&0xf0ff==0x8C)  // код

 

Stranger_812
Offline
Зарегистрирован: 05.08.2017

да, конечно, я пишу

Serial.print( some.value, HEX );
if (some.value&0xf0ff==0x8C)
    {
    Serial.print( "ok" );
    }

 в мониторе пишет "B8C"

и все, хотя должен писать "ок" кмк.

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Плохой из вас телепат. Я вам передавал этот код

if (some.value==0xB8C)
    Serial.print( "ok" );
else Serial.print( some.value, HEX );

Так что у вас два пути. Или развивать свой навык телепатии , изучая соответсвующую литературы. Или же поступить традиционно как все почитать как программировать на Си.

Stranger_812
Offline
Зарегистрирован: 05.08.2017

Ваш код совершенно никак не решает задачи которую я описал в начале. Смысл его писать?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

low(some.value)==0x8C

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Stranger_812 пишет:

Ваш код совершенно никак не решает задачи которую я описал в начале. Смысл его писать?

А смысл мне писать вам код, если ни думать головой, ни читать решение не умеете. Если вы не знакомы как производить отладку программы или вы думаете что отладка программы это вывалить тему на форум и все больше от вас ничего не требуется, то я безсилен что то сделать. Так что я все.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Stranger_812 пишет:

Подскажите, каким образом можно реализовать такую конструкцию

 switch( some.value )
      {
      case 0x*8C:                 
        // код
        break;
где * -любой символ, т.е при 0xA8C и 0xB8C будет выполнятся один код?

 switch( some.value  & 0xFF)  {
      case 0x8C:                 
           // код 
      break;

Это если перед * точно ничего не бывает.

Кстати, вставляйте код как положено. Обычно я на сообщения с неправильно вставленным кодом не отвечаю.

Stranger_812
Offline
Зарегистрирован: 05.08.2017

Спасибо, то что нужно)