ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
3 февраля
1568662 Топик полностью
3m (Сегодня, 18:01, просмотров: 630)
Какой вариант оставить ? (вопрос чисто эстетический, размер кода одинаковый) 
/* возвращает текущее состояние лампы или кнопки
 * на входе:  bitpos - позиция бита
 * на выходе: текущее состояние
 */
#if 1
bool get_state_by_bitpos(uint8_t bitpos)
{
  bitpos_desc_t* desc = bitpos2device(bitpos); // описание устройства
  bool ret;
  switch (desc->type)
  {
    case DIGIN_DEV_LAMP:
      ret = lamp_memory[desc->idx]>>7;
      break;
    case DIGIN_DEV_BTN:
      ret = btn_memory[desc->idx]>>7;
      break;
    default:
        PR_DEBUG("%s Invalid bitpos %u\n", __FUNCTION__, bitpos); // неверный номер бита, ошибка
ret = false; } // switch return ret; } #else bool get_state_by_bitpos(uint8_t bitpos) { bitpos_desc_t *desc = bitpos2device(bitpos); // описание устройства switch (desc->type) { case DIGIN_DEV_LAMP: return lamp_memory[desc->idx] >> 7; case DIGIN_DEV_BTN: return btn_memory[desc->idx] >> 7; default: PR_DEBUG("%s Invalid bitpos %u\n", __FUNCTION__, bitpos); // неверный номер бита, ошибка } // switch return false; } #endif