|
|
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
есть пакет с данными uint8_t packet[20] . переменная uint32_t занимает 4 байта. соответственно если я хочу посмотреть изменилась ли переменная в следующей посылке я делаю так if (new_packet[0] != old_packet[0] || new_packet[1] != old_packet[1] || new_packet[2] != old_packet[2] || new_packet[3] != old_packet[3]) вопрос есть ли более быстрый алгоритм проверки изменения переменной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2015, 12:36 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
jenya7, memcmp() ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2015, 12:47 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
Более короткий Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2015, 12:47 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
Dima TБолее короткий Код: sql 1. ну там тоже перебором сравнивается. побайтно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2015, 12:49 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
Почетыребайтно Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2015, 12:53 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
jenya7Dima TБолее короткий Код: sql 1. ну там тоже перебором сравнивается. побайтно. Почему memsmp() быстрее цикла for ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2015, 12:55 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
jenya7Dima TБолее короткий Код: sql 1. ну там тоже перебором сравнивается. побайтно. http://habrahabr.ru/company/intel/blog/133962/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2015, 12:55 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
Dima TПочетыребайтно Код: sql 1. :) да. понимаю. но приведение не отменяет закулисные операции. или таки да есть экономия? я почему так озабочен - это эмбедед, к тому же система на батарейке, важен каждый такт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2015, 12:58 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
DarkMasterjenya7пропущено... ну там тоже перебором сравнивается. побайтно. Почему memsmp() быстрее цикла for а это не платформозависимо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2015, 13:02 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
jenya7Dima TПочетыребайтно Код: sql 1. :) да. понимаю. но приведение не отменяет закулисные операции. или таки да есть экономия? Закулисные операции (приведение) происходят в момент компиляции. Во время выполнения их нет. ИМХУ memcmp() примерно в тоже самое превратится после компиляции. Почитай ссылки в сообщениях выше. jenya7я почему так озабочен - это эмбедед, к тому же система на батарейке, важен каждый такт. Не на том экономишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2015, 13:04 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
jenya7DarkMasterпропущено... Почему memsmp() быстрее цикла for а это не платформозависимо? Это платформозависимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2015, 13:45 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
мне больше нравиться так. Код: c# 1. соответственно для ворого uint32_t будет так? Код: c# 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2015, 14:18 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
jenya7соответственно для ворого uint32_t будет так? Код: c# 1. Да Для обоих вместе лучше так Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2015, 14:25 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
спасибо большое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2015, 14:28 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
jenya7, мэмкомпарэ будет шустрее работать если сравнений больше 1 раза(потому как писали не дураки, библиотечное и мульён раз оптимизировано со всех сторон). естественно функция из стандартной библиотеки - т.е. будет поставлен оптимизированный код под ваш мк. если в рукопашную всё-таки хотите, то задействовать нужно всю ширину регистра данных. т.е. если у вас к примеру stm32(32 разрядный мк), то сравнивать нужно приведя к полному регистру т.е. uint32_t удачи вам (круглый) ЗЫ Вообще-то это как бы сказать - азы... И Вам следовало бы вкурить альма-матер: Керниган, Ритчи "Язык программирования С" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2015, 17:50 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
kolobok0jenya7, мэмкомпарэ будет шустрее работать если сравнений больше 1 раза(потому как писали не дураки, библиотечное и мульён раз оптимизировано со всех сторон). естественно функция из стандартной библиотеки - т.е. будет поставлен оптимизированный код под ваш мк. если в рукопашную всё-таки хотите, то задействовать нужно всю ширину регистра данных. т.е. если у вас к примеру stm32(32 разрядный мк), то сравнивать нужно приведя к полному регистру т.е. uint32_t удачи вам (круглый) ЗЫ Вообще-то это как бы сказать - азы... И Вам следовало бы вкурить альма-матер: Керниган, Ритчи "Язык программирования С" вот листинг Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. который все объясняет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 11:00 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
кстати я тут подумал такую запись Код: c# 1. можно заменить на Код: c# 1. или я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 11:04 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
jenya7или я не прав? Прав если порядок байт совпадает (endian). Затести, можно если Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 13:05 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
Dima Tjenya7или я не прав? Прав если порядок байт совпадает (endian). Затести, можно если Код: sql 1. да. "индианность" нужно соблюсти. спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2015, 14:02 |
|
||
|
отследить изменение переменной в C.
|
|||
|---|---|---|---|
|
#18+
hmidahвсе чт о связано с автоматизацией... о! ышо живы? молодцы.... поставщики одни из первых сертифицированных компьютерных касс(IPC) в торговлю... всего 4 POS кассы были разрешены = ABS, IPC, NCR и счёт маш. потом халява закончилась - для сертификации кассы нужно было иметь продажи на территории РФ... а для продаж - нужно было иметь сертификацию ... в сертификационную комиссию входили те люди, кто сам имел сертификаты на ввоз указанных брэндов(Ярошевская, Ильин и т.д..) и конкурентов за красивые глазки не пускали.. история ужо. сервис плюс, автобанк, юнион кард, юнион софт сервис ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2015, 18:49 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=32&tid=1340844]: |
0ms |
get settings: |
5ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 210ms |
| total: | 373ms |

| 0 / 0 |
