-2

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

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

4

1 回答 1

3

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


(如果您出于某种奇怪的自虐原因仍然这样做,那么您必须强制转换void *__u8 *,因为在 C++ 中,void *不会发生隐式转换。太糟糕了。)

于 2013-06-03T09:48:19.153 回答