c++ - 使用 g++ 编译 C 代码 : Invalid conversion

标签 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);
    }

任何解决此问题的帮助都会受到赞赏! 谢谢!

最佳答案

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

<小时/>

(如果您出于某种奇怪的受虐原因这样做,那么您必须将 void * 转换为 __u8 *,因为在 C++ 中,从 void 进行隐式转换* 没有发生。太糟糕了。)

关于c++ - 使用 g++ 编译 C 代码 : Invalid conversion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16893951/

相关文章:

c - 嵌入式 C : How to apply the MAP macro to two arguments at a time instead of one?

c - 点 (.) 在结构初始值设定项中是什么意思?

c - 符合 MISRA 标准的运行时字节顺序检测

c++ - 是否可以在 gcc 中仅启用特定的 C++ 语言功能?

c++ - 如何将 SFML 游戏服务器部署到 Linux 服务器?

c++ - 将链表从原始指针转换为智能指针

c - 我想做一个函数来将 ":"添加到我的闹钟

c - switch 语句中的死代码消除

c++ - 如何确保销毁父实例成员?

java - C++中的JNI读取文件到jbyteArray