sách gpt4 ai đã đi

c - 应为 'void (**)(void *, const char *)' 但参数类型为 'void (*)(void *, const char *)

In lại 作者:行者123 更新时间:2023-11-30 21:41:52 30 4
mua khóa gpt4 Nike

我不明白什么

void (**)(void *, const char *)
/* ^^ why are there 2 asterisks here?

意思是,它是一个指向函数的指针,但我失败了

确切的错误消息是

expected 'void (**)(void *, const char *)' but argument is of type 'void (*)(void *, const char *)'      
initGenericErrorDefaultFunc (xmlGenericErrorFunc *handler);
^
/usr/include/libxml2/libxml/xmlerror.h:866:

Đây làlibxml2中默认的错误消息函数,我尝试调用的函数是

initGenericErrorDefaultFunc (xmlGenericErrorFunc *handler);

của tôiNgười xử lý参数函数是

vô hiệu
skipErrorPrinting(void *ctx, const char *msg, ...)
{
}

然后我像这样调用initGenericErrorDefaultFunc()

initGenericErrorDefaultFunc(skipErrorPrinting);

đây rồi xmlGenericErrorFunc

的定义
typedef void (XMLCDECL *xmlGenericErrorFunc) (void *ctx,
const char *msg,
...) LIBXML_ATTR_FORMAT(2,3);

1 Câu trả lời

它非常奇怪,它想要trở lại默认的错误处理程序。所以你必须传递一个指向变量的指针。像这样(未经测试):

xmlGenericErrorFunc handler;
initGenericErrorDefaultFunc(&handler);

如果我正确理解你的意图,这不是你真正想要用来抑制错误的函数。请改用 xmlSetGenericErrorFunc()。您可以使用 initGenericErrorDefaultFunc() 再次恢复它。传递 NULL。

关于c - 应为 'void (**)(void *, const char *)' 但参数类型为 'void (*)(void *, const char *),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28417856/

30 4 0
Bài viết được đề xuất: C 在数组中存储变量的地址
Bài viết được đề xuất: 带有连接和分组依据的mysql查询
Bài viết được đề xuất: Mysql不同行2列
Bài viết được đề xuất: c - 尝试在C中使用宏
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com