c - What does (*new) do?



我试图解决我的应用程序在activemq-cpp-3.4.0库中遇到的问题,并且达到了逐行跟踪以查看出错的地方的程度。应用程序问题本身与这个问题无关;我遇到了一些我不懂的代码,我希望有人能解释一下是怎么回事。

跟踪,我发现以下代码(注意:这在技术上属于apr库):

alloc_socket(new, cont);
/* For right now, we are not using socket groups.  We may later.
 * No flags to use when creating a socket, so use 0 for that parameter as well.
 */
(*new)->socketdes = socket(family, type, protocol);
if ((*new)->socketdes == INVALID_SOCKET) {
    return apr_get_netos_error();
}

我被alloc_socket(new, cont)弄糊涂了,但我特别感兴趣的是(*new)调用发生了什么。这是否分配了this的另一个实例?如果是这样,通过再次使用(*new)来检查存储的socketdes值是否错误,因为这会创建另一个单独的实例?还是我完全偏离了轨道?

这是C代码。在C语言中,new是标识符,而不是关键字。

最新更新