Void指针和函数参数中的转换

时间:2016-05-07 22:52:24

标签: c++ casting function-pointers void-pointers

以下是代码段。

class NetworkRequestChannel {
public:
  ...

  NetworkRequestChannel(const unsigned short _port_number,
    void * (*connection_handler) (int *));
  ...
private:
  ...
}

我的问题是关于论点void * (*connection_handler) (int *)。我有一个模糊的想法如何阅读它,它作为一个空指针指向一个名为connection_handler的对象,然后被转换为int指针。但我知道这几乎肯定是错的,而且我不确定如何解释它。

2 个答案:

答案 0 :(得分:1)

论点

void * (*connection_handler) (int *)

是指向函数的指针,该函数采用int*类型的一个参数并返回void*

答案 1 :(得分:0)

这是函数指针的语法。有问题的参数接受一个函数,该函数将单个int*作为参数并返回void*值(通用内存地址)。

您可以详细了解here

(这是一篇相当古老的文章,我鼓励人们评论或编辑这个答案,列出那些强调现代C ++实践的答案。如果我链接的文章实际上与最佳实践保持同步,请忽略这一点。)

相关问题