Преобразовать void * (void * const mAudioData) в Short *, используя Objective c? - PullRequest
1 голос
/ 13 января 2012

У меня есть AudioQueueBuffer аудио данные в формате void * const.Я хочу короткий массив (short *) Аудио данные для моего кодека.

Как конвертировать void * const в Short * в Objective c ???возможно ли приведение типа из void в short?или я должен использовать преобразование порядка байтов, например OSReadBigInt16 ???если так образец для преобразования?Пожалуйста, помогите мне найти решение.

Ответы [ 2 ]

1 голос
/ 13 января 2012

void* - это соглашение для объявления нетипизированных указателей. Такие указатели должны быть повторно интерпретированы как указатели на некоторый тип данных. Работает ли это или нет, зависит от того, что вы или API поместили по адресу, указанному указателем void*: если это последовательность значений short без пробелов, простое приведение к short* будет работать ; в противном случае вам может потребоваться выполнить дополнительное преобразование.

1 голос
/ 13 января 2012

Да, Objective-C - это то же самое, что и C для приведения типов. Это означает, что если вы хотите интерпретировать указатель void * как указатель short *, все, что вам нужно сделать, это:

(short *)voidPointer

Если байты находятся не в правильном порядке (т. Е. Несовпадение по порядку байтов), вам также придется с этим справиться - однако невозможно определить, так ли это на основе информации в вашем вопросе.

...