Easyelectronics.ru

Электроника для всех
Текущее время: 20 окт 2019, 00:55

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Проверка строк
СообщениеДобавлено: 05 дек 2015, 20:26 
Старожил

Зарегистрирован: 25 фев 2011, 18:45
Сообщения: 3545
Откуда: Новосибирск
Hold писал(а):
...

Каждый пишет программы по своему. В чем вы в данный момент увидели сложность?

Предвижу высказывания насчет преждевременной оптимизации, но, некоторые моменты мною уже опробованы ранее. Поэтому, я написал свои аналоги некоторых библиотечных функций.

Что касается проверки строк. Функции написаны так, чтобы код выполнялся за меньшее кол-во тактов. ОЗУ не в каждом МК хоть (_._) ешь. А вы предлагаете из флеша в ОЗУ гонять, хотя я как раз из экономии ОЗУ загнал данные во флеш. Вам же прекрасно известно, что больше данных, структур, меньше программа и наеборот.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проверка строк
СообщениеДобавлено: 05 дек 2015, 21:35 
Старожил
Аватара пользователя

Зарегистрирован: 06 ноя 2013, 16:07
Сообщения: 652
Откуда: Германия
Если коды команд можешь выбирать сам, то нумеруешь их с нуля без пропусков, тогда в table_msg_cmd не нужны структуры, только строки и select_msg вырождается в

Код:
print_buf (mirf_buf, 1, table_msg_cmd[a]);


Опционально, проверка на выход за индекс массива. NULL_TEXT, NULL_CMD тоже не нужны, заменяются на sizeof; но можно и так.

demiurg1978 писал(а):
Код:
      for (u08 i = 0; i < mirf_PAYLOAD; i++)
      {
         if (!ptr_2 [i]) return ptr -> cmd;

         if (ptr_2 [i] != mirf_buf [i]) break;
      }


Это и есть strcmp. Если твой компилятор умеет ее применять к данным из флеша, то лучше ее и использовать.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB