我看到这行代码,我不明白什么是typedef:ed where ...
typedef void *(*SomeType)(OtherType mem, thirdtype size);
Run Code Online (Sandbox Code Playgroud)
那么,我该如何使用它呢?
这是函数指针的typedef.
typedef void *(*SomeType)(OtherType mem, thirdtype size);
void* func (OtherType mem, thirdtype size) {}
Run Code Online (Sandbox Code Playgroud)
然后可以像这样使用:
SomeType fptr = &func;
fptr(someMem, someSize);
Run Code Online (Sandbox Code Playgroud)
或者它本身可以作为参数传递给函数
void memory_visitor (SomeType visit_cb)
{
...
if (visit_cb)
visit_cb (visistedMem, visistedMemSize);
}
Run Code Online (Sandbox Code Playgroud)