Микроконтроллеры | switch...case или if...else |
|
---|---|---|
В зависимости от нажатой кнопки переменная "а" может принимать значения равные 1,2 или 3. В прерывании по таймеру 0 авр-ки, в зависимости от значения "а", должен выполняться тот или иной код. Думаю сделать выбор с помощью: switch (a) или if(a==...){ А вот как правильнее (быстрее чтобы код выполнялся) сделать? И будет какая-нибудь разница по скорости, если не if else, а так: if(a==1){"код1";} |
|
|
для множественного выбора, по идее, switch быстрее. И читабельность кода намного выше. |
|
|
switch говорят лучше. но для небольшого кода надо ставить if () { } else { } . и даже до 2х else можно ставить эту конструкцию. А уже если больше, то лучше switch. |
|
|
Идеальный вариант - компилировать программу, потом декомпилировать и посмотреть что будет на асме в обоих случаях. Иногда очень интересные варианты получаются. Так с ходу вообще трудно сказать что эффективнее - от компилятора сильно зависит. Косвенно можно судить по размеру откомпилированного файла - чем меньше, тем эффективнее код (но все-таки не всегда "маленький" является "быстрым"). |
|
|
+1. Switch сильно зависит еще от набора проверяемых значений. |
|
|
jusupoff: чем меньше, тем эффективнее код |
|
|
rfc: jusupoff: чем меньше, тем эффективнее код |
|
|
Digital: Это когда сокращённые записи команд используют? например for (i=0;i<10000;i++) { памяти будет занимать чуть, но выполняться намного дольше 10000 nop подряд. Из за сбросов конвейера на цикле. т.е. тут код маленький, а подряд записанный - быстрее, т.е. эффективный img src="/smile/fun-n.gif" width="15" height="15" alt="" /> |
|
|
rfc: т.е. тут код маленький, а подряд записанный - быстрее |
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |