使用g ++编译C代码:转换无效

时间:2013-06-03 09:46:49

标签: c++ c c99 c11

我正在用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);
    }

任何帮助解决此问题表示赞赏! 谢谢!

1 个答案:

答案 0 :(得分:4)

不要尝试使用C ++编译器编译C代码。永远。它们是非常独特的,不同的语言。


(如果你因为一些奇怪的自虐原因而做,那么你必须将void *强制转换为__u8 *,因为在C ++中,void *的隐式转换不会发生。太糟糕了。 )