адресация беззнакового 16-битного вектора с беззнаковым 32-битным вектором смещения

У меня есть указатель на беззнаковый 16-битный вектор uint16x8_t *_h; Мне нужно добавить к этому указателю рассчитанное беззнаковое 32-битное смещение вектора — смещение выглядит так: uint32x4_t _o32x4; вопрос в том, как это сделать с помощью неоновые свойства?

Благодарность

ИЗМЕНИТЬ

Скажем, у меня есть следующее:

uint16_t * h = malloc(N * sizeof(uint16_t));
uint16x8_t * _p = (uint16x8_t *) h;

где N кратно 8. _p указывает на вектор из 8 uint16_t значений. Теперь, если я сделаю _p + offset, где смещение является 'константой' integer, я получу доступ к данным, указанным h в позиции 8 x offset.

Теперь предположим, что смещение не является "константой", а является вектором из 4 значений, так что uint32x4_t offset; мне интересно сместить _p с этим смещением. Вопрос в следующем: возможно ли это? и если возможно, как это сделать?


person PhonoDots    schedule 30.07.2015    source источник
comment
Указатель — это скалярное значение. Что вы имеете в виду, когда хотите добавить векторное смещение к скалярному значению? Не совсем понятно, чего вы хотите добиться.   -  person solidpixel    schedule 30.07.2015
comment
@ Isogen74 - см. мой EDIT выше.   -  person PhonoDots    schedule 31.07.2015
comment
Как вы ожидаете, что ваш результирующий тип будет?   -  person Pete Fordham    schedule 01.08.2015


Ответы (1)


Является ли это возможным?

Нет - то, что вы предлагаете, недействительно в C.

person solidpixel    schedule 02.08.2015
comment
ты не прав. Я делаю вещи в EDIT все время. - person PhonoDots; 04.08.2015
comment
Почти уверен, что вы не делаете pointer + vector, так как он не скомпилируется. Вы можете уйти с pointer + sizeof(vector), но тип, на который указывает ваш указатель, и тип вектора не совпадают, что является псевдонимом типа и, следовательно, не разрешено в последних стандартах. - person solidpixel; 04.08.2015