gpt4 book ai didi

c++ - 这是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-04 14:35:31 25 4
gpt4 key购买 nike

这个:

typedef HRESULT (*PFN_HANDLE)(ClassName&);

它是这样使用的:

DWORD ClassName::Wait(PFN_HANDLE pfnh_foo)
{
while (!done) {
waitCode = WaitForMultipleObjects(paramA, paramB, paramC, paramD)

if (waitCode == WAIT_OBJECT_0)
{
pfnh_foo(*this);
}
else
done;
}
return waitCode;
}

看起来 Wait 除了在到达 WaitForMultipleObjects 时阻塞之外什么都不做,然后在那之后做了这个奇怪的 pfnh_foo 事情并且要么循环回来再次等待或退出

最佳答案

你的 wait() 函数基本上是 waits for multiple objects然后使用 function pointer 调用函数PFN_HANDLE 如果等待成功(由返回值 WAIT_OBJECT_0 指示)。

pfnh_foo(*this);

这会调用带参数 *this 的 pfnh_foo 指向的函数。

假设我们有函数:

HRESULT someFunction(ClassName& myClassInstance)
{
//blah .. blah
}

Wait 将像这样被调用:

PFN_HANDLE pfnh_foo = &someFunction;  //function pointer to someFunction
wait(pfnh_foo);

关于c++ - 这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1008449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com