我有这个代码:
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
}
我对错误的理解是两者是不同的类型,但我不明白在这种情况下我做错了什么。
最佳答案
你的声明是错误的,应该是
FLAC__StreamDecoderWriteStatus (*writeCallbackPtr) (
const FLAC__StreamEncoder *,
const FLAC__byte[],
/* here ^ you missed the [] */
size_t ,
unsigned ,
unsigned ,
void *) = writeCallback;
关于Android:从不兼容的指针类型初始化 JNI 函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27726321/