我正在为一个项目使用 libxml2,它的一个怪癖是 xmlChar
是 unsigned char
而不仅仅是 char
的类型定义>。据我所知,这对实际执行没有任何影响,但使用字符串文字真的很烦人,因为我必须手动转换为 const xmlChar*
。我真正想要的是能够编写 xmlGetProp(node, "some-property")
而不是 xmlGetProp(node, (const xmlChar*)"some-property")
。它可能看起来微不足道,但当所有其他语句都有一个 (const xmlChar*)
转换时,它会使代码更难阅读。
有没有办法在不手动转换的情况下将 const char*
转换为 const xmlChar*
(const unsigned char*
)?或者,是否有我不应该这样做的理由?
我认为这在 C++ 中会相当容易,但我仍然坚持使用 C。
最佳答案
libxml2定义了一个宏BAD_CAST
在 xmlstring.h
中:
#define BAD_CAST (xmlChar *)
可以这样使用:
xmlStrEqual(name, BAD_CAST "xml:lang")
关于c - 一种在 C 中自动将字符串文字转换为 `unsigned char*` 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27369175/