2014-12-31 82 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

衛生署!非常感謝。 –