繁体   English   中英

如何创建指向结构的指针并进行类型转换?

[英]How do you create a pointer to a struct and type cast it?

有人可以告诉我我要去哪里了吗? 我正在尝试创建一个指向传递给函数的结构aqData的指针,并将其类型转换为AQPlayerState的结构类型。

我遇到了错误-使用未声明的标识符“ AQPlayerState”和期望的表达式

    @implementation AudioPlayer

#define kNumberBuffers 3

struct AQPlayerState {
    AudioStreamBasicDescription   mDataFormat;
    AudioQueueRef                 mQueue;
    AudioQueueBufferRef           mBuffers[kNumberBuffers];
    AudioFileID                   mAudioFile;
    UInt32                        bufferByteSize;
    SInt64                        mCurrentPacket;
    UInt32                        mNumPacketsToRead;
    AudioStreamPacketDescription  *mPacketDescs;
    bool                          mIsRunning;
};

static void HandleOutputBuffer (
                                void                *aqData,
                                AudioQueueRef       inAQ,
                                AudioQueueBufferRef inBuffer
                                ) {

    struct AQPlayerState *pAqData = (AQPlayerState *) aqData;

预先感谢您的任何帮助

C中的结构通过其“全名”识别。 尝试

  struct AQPlayerState *pAqData = (struct AQPlayerState *) aqData; 

或者甚至更好 ,完全不要投放。 C编译器知道如何从void*转换为任何其他指向对象的指针

    struct AQPlayerState *pAqData = aqData;
  • 隐式转换:
  • 显式转换(广播):不太好

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM