使用Objective c将void *(void * const mAudioData)转换为Short *?

时间:2012-01-13 03:53:39

标签: objective-c ios primitive-types short speex

我的AudioQueueBuffer音频数据格式为void * const。我想要我的编解码器的短数组(short *)音频数据。

如何在Objective c中将void * const转换为Short * ???从无效到可能的短期类型?或者我必须使用像OSReadBigInt16这样的字节顺序转换???如果是这样的转换样品?请帮我找到解决方案。

2 个答案:

答案 0 :(得分:1)

是的,Objective-C就像C一样用于类型转换。这意味着如果您想将void *指针解释为short *指针,您需要做的就是:

(short *)voidPointer

如果字节的顺序不正确(即字节顺序不匹配),那么你也需要处理它 - 但是根据问题中的信息,无法判断是否存在这种情况。 / p>

答案 1 :(得分:1)

void*是一种声明无类型指针的约定。这些指针需要重新解释作为指向某些数据类型的指针。它是否有效取决于您或API在void*指针指向的地址处放置的内容:如果它是一个short值的序列,没有间隙,则为{{1会起作用;否则,您可能需要执行其他转换。