• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Как я тупил над оператором switch

Andy Korg

Moderator
Команда форума
Хочу поделится веселым случаем который произошел только что. Написал час назад такой кусок кода:
Код:
switch (VarList[i].varType){
                    vtenByte:
                        tcp_puts(VarList[i].ArgPrnHttp, *((uint8*)(VarList[i].Value)));
                        break;
                    ....
                    vtenWord32:
                        tcp_puts(VarList[i].ArgPrnHttp, *((uint32*)(VarList[i].Value)));
                        break;
                    default:
                        os_printf("bad = %x\n", *((uint8*)(VarList[i].Value)) );
                        break;
}
И запустил отладку. Код конечно же не заработал. В debug порт все время лезло 'bad - '. Думаю что за фигня! Переписал на операторах "if" все прекрасно работает. Вернул взад на switch - не работает! Вообщем пошел попить чаю и вспомнил - "а оператор case! совсем про него забыл!" И компилятор не ругается, ведь все же написано синтаксически правильно. Вот такой получился у меня тупняк сегодня. Зато счас смешно от собственной тупости :)
 

Perfer

New member
Тогда все понятно! :)
Кстати, конструкцию вида z:blablabla(x,y); компилятор воспринимает как вызов функции blablabla(x,y) на которую указывает метка z. Поддержка меток в компиляторе от goto осталась.
 
Последнее редактирование:
Сверху Снизу