Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Невозожно создать переменную в case.
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Jenya7
Я не могу сделать так
Код
{
    case GET_DATA_LOGGER:
         uint32_t len=(uint32_t)usartRxBuf[16]+((uint32_t)usartRxBuf[15]<<8);
         uint32_t deltaOffset=(uint32_t)usartRxBuf[14]+((uint32_t)usartRxBuf[13]<<8);
         uint32_t delay=usartRxBuf[17];
         uint32_t times=usartRxBuf[18];
     break;
}

получаю
a label can only be part of a statement and a declaration is not a statement
я должен создать переменные перед case
Код
switch(mode)
{
        uint32_t len;
        uint32_t deltaOffset;
        uint32_t delay;
       uint32_t times;
    case GET_DATA_LOGGER:
        len=(uint32_t)usartRxBuf[16]+((uint32_t)usartRxBuf[15]<<8);
          deltaOffset=(uint32_t)usartRxBuf[14]+((uint32_t)usartRxBuf[13]<<8);
          delay=usartRxBuf[17];
          times=usartRxBuf[18];
     break;
}

Раньше это меня не особо беспокоило, но теперь у меня есть десятки кейсов с кучой переменных и это раздражает.
Сергей Борщ
Цитата(Jenya7 @ Feb 16 2015, 09:42) *
Я не могу сделать так
Когда же вы наконец документацию прочтете?
Код
{
    case GET_DATA_LOGGER:
    {
         uint32_t len=(uint32_t)usartRxBuf[16]+((uint32_t)usartRxBuf[15]<<8);
         uint32_t deltaOffset=(uint32_t)usartRxBuf[14]+((uint32_t)usartRxBuf[13]<<8);
         uint32_t delay=usartRxBuf[17];
         uint32_t times=usartRxBuf[18];
    }
     break;
}

andrew_b
Цитата(Jenya7 @ Feb 16 2015, 10:42) *
Я не могу сделать так
Код
{
     case GET_DATA_LOGGER:
          uint32_t len=(uint32_t)usartRxBuf[16]+((uint32_t)usartRxBuf[15]<<8);
          uint32_t deltaOffset=(uint32_t)usartRxBuf[14]+((uint32_t)usartRxBuf[13]<<8);
          uint32_t delay=usartRxBuf[17];
          uint32_t times=usartRxBuf[18];
      break;
}
А так:
Код
{
    case GET_DATA_LOGGER:
     {
         uint32_t len=(uint32_t)usartRxBuf[16]+((uint32_t)usartRxBuf[15]<<8);
          uint32_t deltaOffset=(uint32_t)usartRxBuf[14]+((uint32_t)usartRxBuf[13]<<8);
          uint32_t delay=usartRxBuf[17];
          uint32_t times=usartRxBuf[18];
     }
     break;
}
Jenya7
OMG! спасибо. в AVR я всегда ставил фигурные скобки в кейсе поэтому этой проблемы не возникало.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.