:錯誤當初始化函數指針給出下面的結構與文件名和functionpointer結構成員
static struct thread {
const char *const filename;
ssize_t (*in)(struct thread *, void *, size_t);
}
和功能
int MyClass::read_wrap(struct stThread *t, void *buf, size_t nbytes)
{
return read(t->fd, buf, nbytes);
}
我試着功能read_wrap
分配給結構對象中的函數指針成員:
int main (void)
{
thread myThread;
myThread.in = read_wrap;
}
但是我得到t他錯誤:
error: cannot convert MyClass::read_wrap’ from type ‘int (MyClass::)(stThread*, void*, size_t) {aka int (MyClass::)(stThread*, void*, unsigned int)}’ to type ‘int (*)(MyClass*, void*, size_t) {aka int (*)(stThread*, void*, unsigned int)}’
我的意思是,該結構是期待一個函數指針,我想,當我將它傳遞函數的名稱,這是莫名其妙地鑄造成FP? 這段代碼來自C語言,使用gcc進行編譯。 感謝您的幫助!
的T-> FD功能是成員函數類型,這是不同的只是一個函數指針 – zapredelom