【问题标题】:Android: JNI function pointer initialization from incompatible pointer typeAndroid:从不兼容的指针类型初始化 JNI 函数指针
【发布时间】:2015-01-01 05:16:11
【问题描述】:

我有这个代码:

FLAC__StreamDecoderWriteStatus writeCallback(const FLAC__StreamEncoder *encoder, const FLAC__byte buffer[], size_t bytes, unsigned samples, unsigned current_frame, void *client_data) {
   //impl....
}

然后我有这个声明:

{    
/// stuff
FLAC__StreamDecoderWriteStatus (*writeCallbackPtr) (const FLAC__StreamEncoder *, const FLAC__byte  , size_t , unsigned , unsigned , void *) = writeCallback;
// more stuff
}   

我对错误的理解是两者属于不同类型,但我不明白在这种情况下我做错了什么。

【问题讨论】:

    标签: android c pointers


    【解决方案1】:

    你的声明是错误的,应该是

    FLAC__StreamDecoderWriteStatus (*writeCallbackPtr) (
        const FLAC__StreamEncoder *, 
        const FLAC__byte[], 
        /*         here ^ you missed the [] */         
        size_t , 
        unsigned , 
        unsigned , 
        void *) = writeCallback;
    

    【讨论】:

    • 噢!非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 2021-02-21
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    相关资源
    最近更新 更多