作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不明白什么
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:
这是libxml2
中默认的错误消息函数,我尝试调用的函数是
initGenericErrorDefaultFunc (xmlGenericErrorFunc *handler);
我的处理程序
参数函数是
void
skipErrorPrinting(void *ctx, const char *msg, ...)
{
}
然后我像这样调用initGenericErrorDefaultFunc()
initGenericErrorDefaultFunc(skipErrorPrinting);
这里是 xmlGenericErrorFunc
typedef void (XMLCDECL *xmlGenericErrorFunc) (void *ctx,
const char *msg,
...) LIBXML_ATTR_FORMAT(2,3);
最佳答案
它非常奇怪,它想要返回默认的错误处理程序。所以你必须传递一个指向变量的指针。像这样(未经测试):
xmlGenericErrorFunc handler;
initGenericErrorDefaultFunc(&handler);
如果我正确理解你的意图,这不是你真正想要用来抑制错误的函数。请改用 xmlSetGenericErrorFunc()。您可以使用 initGenericErrorDefaultFunc() 再次恢复它。传递 NULL。
关于c - 应为 'void (**)(void *, const char *)' 但参数类型为 'void (*)(void *, const char *),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28417856/
我是一名优秀的程序员,十分优秀!