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

Compiling C code with g++: Invalid conversion

本文关键字:无效 转换 代码 c++ 编译      更新时间:2023-10-16

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

任何帮助修复这个是感激的!谢谢!

不要尝试使用c++编译器编译C代码。永远。它们是截然不同的语言。


(如果出于某种奇怪的受虐原因,您必须将void *强制转换为__u8 *,因为在c++中,不会发生从void *的隐式转换。)太糟糕了。)