реклама на сайте
подробности

 
 
> Адресация элементов массива, Не по индексу, а по имени/метке и т.п.
bingo
сообщение Apr 19 2017, 03:01
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 88
Регистрация: 9-04-12
Пользователь №: 71 256



Добрый день, коллеги
Столкнулся со следующей проблемой

Необходима синтаксическая конструкция в Си для адресации некоторых элементов массива по метке (позиция известна при компиляции), а не по индексу.
В массиве хоть и хранятся структуры, но описывается он как массив uint8!!
Массив и структуры в нем определяются API откомпилированной библиотеки, поэтому сильно изменять (чтобы появились у структур именованные поля) не могу!

Сейчас приходится часто менять этот большой массив, поэтому приходится вручную пересчитывать номер позиции в массиве, куда будут в дальнейшем будут писаться байты.

Заранее спасибо за ответы!

Сообщение отредактировал bingo - Apr 19 2017, 04:30
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Apr 19 2017, 07:08
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Дык и обращайтесь к элементу структуры, зачем высасывать проблему из пальца?
Go to the top of the page
 
+Quote Post
bingo
сообщение Apr 19 2017, 08:56
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 88
Регистрация: 9-04-12
Пользователь №: 71 256



Цитата(ViKo @ Apr 19 2017, 10:08) *
Дык и обращайтесь к элементу структуры, зачем высасывать проблему из пальца?


Ответ прост. Я выше писал.

Вызов библиотечной функции подразумевает параметр в виде массива байт uint8.
Но сами содержимое этого массива (определяется спецификацией пакета) - это несколько структур данных, которые я сейчас при отладке не редко переставляю/изменяю.
Соответственно меняется цифровой индекс нужных мне байт и приходится вручную пересчитывать новое положение элемента массива.


В прототипе функции - это только массив байт без объявления структур с именованными полями!

Сообщение отредактировал bingo - Apr 19 2017, 08:59
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 15:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.0137 секунд с 7
ELECTRONIX ©2004-2016