Easyelectronics.ru

Электроника для всех
Текущее время: 18 янв 2020, 16:14

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



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

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

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

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

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

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


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

Зарегистрирован: 06 ноя 2013, 16:07
Сообщения: 655
Откуда: Германия
Если коды команд можешь выбирать сам, то нумеруешь их с нуля без пропусков, тогда в 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 часов


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

Сейчас этот форум просматривают: demiurg1978


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

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

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