Компиляция кода C с помощью g++: неверное преобразование

Я компилирую код c с g++ и работаю в некоторых проблемах. после исправления назначенных инициализаторов я остаюсь с этой ошибкой:

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 ответ

Не пытайтесь компилировать код C с помощью компилятора C++. Когда-либо. Они очень разные, разные языки.


(Если вы все же делаете по какой-то странной мазохистской причине, то вы должны void * в __u8 *потому что в C++ неявное преобразование из void * не бывает Очень плохо.)

Другие вопросы по тегам