2014-12-31 81 views
0

初始化我有这样的代码:安卓:JNI函数指针从兼容的指针类型

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 
} 

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

回答

1

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

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

卫生署!非常感谢。 –