我正在用g ++编译c代码并运行一些问题。 在修复指定的初始化程序后,我留下了这个错误:
error: invalid conversion from 'void*' to '__u8*'
这是我的代码:
static inline void put_unaligned_le16(__u16 val, __u16 *cp)
{
__u8 *p = (void *)cp;
*p++ = (__u8) val;
*p++ = (__u8) (val >> 8);
}
任何帮助解决此问题表示赞赏! 谢谢!
答案 0 :(得分:4)
不要尝试使用C ++编译器编译C代码。永远。它们是非常独特的,不同的语言。
(如果你因为一些奇怪的自虐原因而做,那么你必须将void *
强制转换为__u8 *
,因为在C ++中,void *
的隐式转换不会发生。太糟糕了。 )