gpt4 book ai didi

c++ - 如何将 C 函数调用转换为 C++ 兼容语法?

转载 作者:行者123 更新时间:2023-11-30 20:13:53 24 4
gpt4 key购买 nike

我有一个关于 *handler 函数的问题,我不明白这是什么,并且在代码中没有这个函数的声明。我在 C 中有此代码 modesReadFromClient(client *c, char *sep, int (*handler)(client *));

现在我想在C++中使用它。在头文件中我有这个代码 -

void modesReadFromClient(client *c, char *sep, int (*handler)(client *));

在源文件中这段代码 -

void MainWindow::modesReadFromClient(struct client *c, char *sep,
int(*handler)(struct client *))

但我有一个错误 -

invalid use of non-static member function modesReadFromClient(c,"\n",HexMessage);

我认为 int* 处理程序有问题。如何将此代码转换为 C++?

最佳答案

它只是一个函数指针,然后您可以从 modesReadFromClient(); 函数中调用 handler()

声明

int (*handler)(struct client *)

使handler成为函数指针,然后您可以像这样调用handler

struct client *someClient;
int handlerResult;
/* initialize someClient */
handlerResult = handler(someClient);

如果您有像这样的处理函数

int handlerFunction(struct client *c)
{
/* do somthing with 'c' */
}

然后你就可以打电话了

modesReadFromClient(c, "\n", handlerFunction);

关于c++ - 如何将 C 函数调用转换为 C++ 兼容语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28614149/

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